I've seen a lot of discussion about it. We all have. But I was unable to find any exact calculations in terms of how much of a benefit Mongoose really is. I searched the forums with Google and tried to disassemble spreadsheets(I failed to figure them out, I admit). I have formulated how Mongoose works in a very generic way, using [Torch of the Damned] as example:
An event happens every 3.68 seconds, each time it happens there is a 6.33%(1 ppm thus 3.8*(1/3*2+1)) chance of the event happening every 3.61 seconds for 15 seconds. When the event happens, the speed increase can happen again, prolonging itself for another 15 seconds(The speed increase does not add up, it simply resets to 15 seconds duration). If the last event in this 15 second period happens, the next one will happen after 3.61 seconds, the one following after it after 3.68 seconds(Assuming it does not prolong itself at this point).
Now I'm by no means a math student, but this seems rather hard to solve.
Did I overlook where this was originally calculated(Or simulated, which seems a lot easier.), or was this never properly calculated?
Essentially 1 - (1-p)^n is correct, you have to ensure that the n you use is the total number of attacks (yellow and white) you achieve in 15 seconds with the haste. (If haste gives you 6 attacks instead of 5, then a proc 6 attacks ago would have given you mongoose for this swing, even though your actual 6th-last swing was 16 seconds ago).
Note this gives the % attacks mongoosed, not the % time mongoosed, which is probably what you care about anyway.
Since the mongoose proc speeds up your weapon in a way that isn't standard haste, the proc chance might be reduced according to the PPM calculation. If this is the case I think the easiest way to solve it is markov chains where the states are the 'number of charges'... EDIT did the calculation, this effect is negligible.
With a 3.8 speed weapon you get 4 white swings in 15 seconds when mongoose is up. This gives an uptime of 23.02% (the markov chain calculation gives 22.97%). Attacking on every global cooldown means 10 extra swings in 15 seconds giving 60% uptime.
As a side note, if your weapon is slightly slower than 3.06 speed after haste, adding slightly more haste rating should give you disproportionate benefit, as it'll cause your 5th swing after mongoose procs to benefit from it. (Similarly a 3.9 speed weapon would benefit from dropping below 3.825).