Let's see. Average spike frequency is the probability that the damage lies in [D,D*1.05]. You can compute it, it is
(20*ln(1.05)*(1-q)/(b-a)+20*q)*0.05=ln(1.05)*(1-q)/(b-a)+q
The average non spike freqency is
(20*ln(1.05)*(1-q)/(b-a))*(b-1.05*a-D*0.05)
The ratio betwwen the two is
( ln(1.05)*(1-q)/(b-a)+q )
____________________________________
(20*ln(1.05)*(1-q)/(b-a))*(b-1.05*a-D*0.05)
(20*ln(1.05)*(1-q)/(b-a))*(b-1.05*a-D*0.05)
When you're near 1.0, with the spike right in the middle, the average spike frequency is about 5x the average non-spike frequency.
Just a rough review from Masa's data..
What I'm looking at:
Find the average frequency of all values aside from the 1.0 spike and any tail ends (artifacts of the 1.05 randomizer).
ln(1.05)*(1-q)/(b-a)+q -Subtract that average frequency from the frequency values of the spike values.
Sum up the remaining spike values.
(20*ln(1.05)*(1-q)/(b-a))*(b-1.05*a-D*0.05)
not simple
Compare that sum with the grand total of all damage value frequencies to see what percentage of all generated damage values are encompassed in the artificial spike.
[ ln(1.05)*(1-q)/(b-a)+q -
(20*ln(1.05)*(1-q)/(b-a))*(b-1.05*a-D*0.05) ]
________________________________________________
ln(1.05)*(1-q)/(b-a)+q
and ..? Is that supposed to be q?
As seen in the formula above this little to no relation with the parameter q which governs the spike.What I found:
Below 1.0 cRatio, down to ~0.8 (where max damage was still above 1.0), ~35% of all values came from the spike pool.
As cRatio dropped towards 0.75 (where max damage was capped at 1.0), the pool size dropped to about 25% of all values.
Not enough data (in this spreadsheet) below 0.75 to see how the trend continued.
Above 1.0 cRatio the pool size fluctuated from ~30% to ~37%. Either 33% or 35% would be believable.
As cRatio increases above 1.25, such that the min damage hits and sticks to 1.0, the percentage of the overall damage frequencies that are made up by the spike pool drop in a fairly linear fashion, reaching 12% at 1.4 cRatio.
Hmm, yeah I did not say that I said q didn't vary with r. I said that between 0.75 and 1.25 the spike frequency IS 30% (or almost in the limit of the confident intervals) and outside of this interval it decreases (probably linearly) to 0.As such you can't simply say that 30% (or whatever) of the time you generate a spike value, and the rest of the time you generate a value in the min::max range.
average=1.025*( (1-q)*(b+a)/2 + q*DMG)One might posit, then, that the chance of generating a frequency spike value is dependant on the total min:max range available.
Formulation:
(max - min)/baseDamage + fraction of total values in the spike
where max and min are corrected to generally exclude the 1.05 spread tails.
That formulation consistantly resulted in a final value of just about 0.9 (with rounding, between 0.89 and 0.91).
So, your threshhold for U would be: 1 - ((max - min)/baseDamage) - 10%
Not sure why there would be the extra -10% there, but could probably be explained based on expectations for the min::max range compared to base damage.
And this finally creates a formula that I'm comfortable with in terms of how the spike is generated. Still needs more work to calculate an average damage value based only on cRatio, though, and you can't completely ignore the min and max values (the a and b you mention in your post).
q(r)= 0.3 if 0.75<r<1.25
q(r)=0.6 - 1.2(r-1) if 1.25<r<1.5
q(r)=0.6+1.2(r-1) if 0.5<r<0.75
q(r)=0 otherwise.
Those formula are on the wiki.
The average is basically a second order polynomial outisde of 0.75 and 1.25 and linear inside assuming a & b are actually linear by part.
r=1,1.25, and 0.75 have 2k sample size nearly in my tests, they are very precise and q is about 0.3 (0.29 to 0.34)
for r=1.5 I verifed that there is no spike q=0.
I need data at r=0.5 to prove that there is no spike either.
So no masa I don't use rough approximation, I know my shit and My model is correct modulo an more accurate methode to determine q which I've yet to see.



Reply With Quote
