Page 4 of 4 FirstFirst ... 2 3 4
Results 31 to 33 of 33
  1. #31
    Player MarkovChain's Avatar
    Join Date
    Mar 2011
    Location
    Windy
    Posts
    1,429
    Character
    Pimpchan
    World
    Quetzalcoatl
    Main Class
    MNK Lv 99
    and ??? this expression is only a function of r, max and min are (an expression of r) times DMG => q doesn't depend from DMG in any way shape or form.
    (0)

    Ultimate DPS simulator
    https://docs.google.com/file/d/0B7wbcilaHsTecldhZm94a1gtZnM/edit

  2. #32
    Player MarkovChain's Avatar
    Join Date
    Mar 2011
    Location
    Windy
    Posts
    1,429
    Character
    Pimpchan
    World
    Quetzalcoatl
    Main Class
    MNK Lv 99
    So as expected the model presented in the thread implies the shape and values of max and min pdif. I'm going to stipulate that the previous observations on 'q' (the parameter of the spike) are accurate, namely that it is worth 0 for r>=1.5 & r<=0.5, and that it equals a constant minus b-a :
    q=K-(b-a)
    K is therefore the the value of (b-a) for r>1.5. The data suggests that b-a = 0.83... @ 2 data point around r=1.5. Another test I conducted using brews shows that b-a=0.79... at cap pdif. When we study the different tests I exposed here we get the following data for a,b,b-a (notation : list of values of [r,a or b or c])


    a=[[0.5973741794, 0.2432432432], [0.6301969365, 0.2702702703],[0.7658643326, 0.4255319149], [0.8730853392, 0.5673076923],[0.9387308534, 0.6442307692],[1.021881838, 0.7234042553],[1.251641138, 1.000000000], [1.498905908,1.000000000],[1.564551422, 1.076923077], [2.0, 1.572815534]]
    b=[[0.5973741794, 1.000000000], [0.6301969365, 1.000000000], [0.7658643326, 1.000000000], [0.8730853392, 1.134615385],[0.9387308534, 1.192307692], [1.021881838, 1.297872340],[1.251641138, 1.567307692], [1.498905908, 1.825242718],[1.564551422, 1.913461538], [2.0, 2.368932039]]
    c=[[0.5973741794, 0.7567567568], [0.6301969365, 0.7297297297], [0.7658643326, 0.5744680851], [0.8730853392, 0.5673076923],[0.9387308534, 0.5480769231], [1.021881838, 0.5744680851],[1.251641138, 0.5673076923], [1.498905908, 0.8252427184],[1.564551422, 0.8365384615], [2.0, 0.7961165049]]

    Graphical expression below (b=green,a=red,c=brown)


    From the graph we can expect all slops to be the same (note that b is not the observed value while a is). Call P(x)=max(x,0) and N(x)=max(-x,0) be the positive and negative part of x, then for a certain slope L,
    a(r)=1+L( -N(r-1.25)+P(r-1.5))
    b(r)=1+L( -N(r-0.5)+P(r-0.75))

    for r=1.5 we have b-a=~0.83. Replacing in the formula gives
    a=1;b=1+L*0.75 => L=0.83*4/3=3.32/3=1.1066666~10/9
    Note : at this point it's unlear wether L=1.1 or 10/9. In the latter case the observed 0.83 value between a and b will be (3/4)x(10/9)=5/6=0.833333
    Anyway this gives the following values or a,b
    r<=1.25 => a=1+(10/9)x(r-1.25);
    1.25<=r<=1.5 => a=1;
    r>=1.5 => a=1+(10/9)x(r-1.5);
    r<=0.5 => b=1+(10/9)x(r-0.5);
    0.5<=r<=0.75 => b=1;
    r>=0.75 => b=1+(10/9)x(r-0.75);

    Note that b is probably capped somewhere near r=1.95 because with brew-pdif we find b-a=0.79 instead of 0.83... I updated the wiki with those formula.

    Incidently we can deduce the expression of the parameter q :
    q=0 if r<=0.5 or r>=1.5
    q is linear on [0.5,0.75] and [1.25,1.5] with a slope equal to L=10/9 and -10/9 respectively, and is constant on [0.75,1.25]. The value of the constant is obtained by doing r=1 in the above equation for instance and we find q=5/18=0.2777=~0.28... This also matches the observed frequencies of the spike (we found around 30% with a decent error that we were unable to narrow).
    (0)
    Last edited by MarkovChain; 03-27-2012 at 12:53 AM.

    Ultimate DPS simulator
    https://docs.google.com/file/d/0B7wbcilaHsTecldhZm94a1gtZnM/edit

  3. #33
    Player MarkovChain's Avatar
    Join Date
    Mar 2011
    Location
    Windy
    Posts
    1,429
    Character
    Pimpchan
    World
    Quetzalcoatl
    Main Class
    MNK Lv 99
    Also those formula are troncated at low pdif. From mob data it appears that around r=0.5 the minimum damage is capped. In this case the damage is not uniform on [a,b] and has a lower spike : therefore it appears that the damage numbers are still generated uniformly on [a,b] from the above formula but that d rather than a is truncated (at ~0.22 of the DMG value). Also just I realised that those formula implies that b-a=5/6 @ r=0.5 exactly so that would be where a caps out (a=1/6).


    Attempt for a global formula

    a:=1+L*( max(max(r,0.5)-1.5,0) - max(1.25-max(r,0.5),0) );
    b:=1+L*( max(r-0.75,0) - max(0.5-r,0) );

    Here is the representation of those functions



    The final model will not account for the lower cap on a for generating numbers but instead cap the generated value :

    a*:=1+L*( max(r-1.5,0) - max(1.25-r,0) );
    b*:=1+L*( max(r-0.75,0) - max(0.5-r,0) );

    d=eta*((1-U)*max(V,DMG/6)+DMGxU)
    with
    DMG= damage value including fstr
    eta= uniform on [1,1.05]
    V=uniform on [a* x DMG,b* x DMG]
    U= bernouilli of parameter q=P(U=1)=5/6 - (b*-a*)
    U,V,eta are independantly generated.

    wiki updated.
    (0)
    Last edited by MarkovChain; 03-27-2012 at 06:09 AM.

    Ultimate DPS simulator
    https://docs.google.com/file/d/0B7wbcilaHsTecldhZm94a1gtZnM/edit

Page 4 of 4 FirstFirst ... 2 3 4