2010-02-23, 10:18 PM
(This post was last modified: 2010-02-23, 10:34 PM by Jellyflower.)
I like to add how to approximate with normal with critical, instead of running simulations, plus the approximation is pretty close too with multiattacks.
Damage variable can be modeled as:
Y = ∑ (rB + 1) x tU where r is critical multiplier(100% for normal crit, 240% with SE), B is Bernoulli with q=final critical rate, U is uniform (a,b) - (lower, upper) of damage range, t is the skill %
Then, E[Y] = kt(rq + 1)((a+b)/2), Var(Y) = kt² (Var((rB +1)U) B and U independent, and rB + 1, U are indep.
Var((rB +1)U) = E[(rB+1)²U²] - E[(rB+1)U)]² = E[r²B²+2rB+1]E[U²] -( E[rB+1]E[U])²
= (r²q + 2rq + 1)((a²+ab+b²)/3) - [(rq+1)((a+b)/2)]²
Var(Y) = kt² x [(r²q + 2rq + 1)((a²+ab+b²)/3) - [(rq+1)((a+b)/2)]²]
(Y-mean)/s.d ~ N(0,1) where X is the HP of the monster desired. Solving for damage range required to x% k-hit a monster will be harder. You have to algebraically manipulate the formula to solve for b, and expressing a in terms of b once again. If you have programs like R, you can just type in the formula, and use the solve function, except I forgot how to do it. Or better yet, type the formula in Excel and use solver, since I think a lot of you use it for your DPS calculations anyway. You'll have to look up the normal values though.
Damage variable can be modeled as:
Y = ∑ (rB + 1) x tU where r is critical multiplier(100% for normal crit, 240% with SE), B is Bernoulli with q=final critical rate, U is uniform (a,b) - (lower, upper) of damage range, t is the skill %
Then, E[Y] = kt(rq + 1)((a+b)/2), Var(Y) = kt² (Var((rB +1)U) B and U independent, and rB + 1, U are indep.
Var((rB +1)U) = E[(rB+1)²U²] - E[(rB+1)U)]² = E[r²B²+2rB+1]E[U²] -( E[rB+1]E[U])²
= (r²q + 2rq + 1)((a²+ab+b²)/3) - [(rq+1)((a+b)/2)]²
Var(Y) = kt² x [(r²q + 2rq + 1)((a²+ab+b²)/3) - [(rq+1)((a+b)/2)]²]
(Y-mean)/s.d ~ N(0,1) where X is the HP of the monster desired. Solving for damage range required to x% k-hit a monster will be harder. You have to algebraically manipulate the formula to solve for b, and expressing a in terms of b once again. If you have programs like R, you can just type in the formula, and use the solve function, except I forgot how to do it. Or better yet, type the formula in Excel and use solver, since I think a lot of you use it for your DPS calculations anyway. You'll have to look up the normal values though.

