.com.unity Forums

.com.unity Forums (http://forum.shrapnelgames.com/index.php)
-   Dominions 3: The Awakening (http://forum.shrapnelgames.com/forumdisplay.php?f=138)
-   -   Maths problem: fatigue vs critical hits (http://forum.shrapnelgames.com/showthread.php?t=38714)

cleveland May 11th, 2008 06:16 PM

Re: Maths problem: fatigue vs critical hits
 
Quote:

lch said:
If I'd calculate greater values, the numbers even turn negative!

Negative probabilities? Sounds like my odds the last time I was in Vegas.

Here's roughly what I did:
1) Constructed a vector A(i) of the explicit probabilities for each single drn outcome i. This is pretty straightforward:
A(1)=A(2)=...=A(5)=1/6
A(6)=A(7)=...=A(10)=(1/6)^2
Etc.

2) Constructed a vector B(j) of the probabilities a second drn would be less than or equal to j. So:
B(1)=A(1)
B(2)=A(1)+A(2)
B(3)=A(1)+A(2)+A(3)
Etc.

3) Constructed a matrix M such that M(i,j) = A(i)*B(j). Therefore, each M(i,j) = P(X<=i+j | drn1=i).

4) Summing the / diagonals of this matrix (i.e. all M(i,j) whose i+j are identical) gives the probability that the 2d6oe will be less than or equal to i+j.

So for example, lets take the case when we want the 2d6oe <= 3. This is only possible 2 ways: if drn1=1 & drn2<=2, or if drn1=2 & drn2=1.

We therefore have:
A(1)=1/6
A(2)=1/6

B(1)=1/6
B(2)=2/6

M(1,2)=(1/6)*(1/6)
M(2,1)=(1/6)*(2/6)

So M(1,2)+M(2,1)= 0.083

Of course, this summation becomes larger for larger X=i+j.
When X=7, you'll need to add M(1,6)+M(2,5)+M(3,4)+...+M(6,1).

Phew.

DonCorazon May 11th, 2008 06:59 PM

Re: Maths problem: fatigue vs critical hits
 
And now in English? http://forum.shrapnelgames.com/images/smilies/happy.gif

cleveland May 11th, 2008 07:30 PM

Re: Maths problem: fatigue vs critical hits
 
Quote:

DonCorazon said:
And now in English? http://forum.shrapnelgames.com/images/smilies/happy.gif

English? I didn't do very well in English... http://forum.shrapnelgames.com/images/smilies/happy.gif

lch May 11th, 2008 09:23 PM

Re: Maths problem: fatigue vs critical hits
 
Quote:

cleveland said:
Here's roughly what I did:
1) Constructed a vector A(i) of the explicit probabilities for each single drn outcome i. This is pretty straightforward:
A(1)=A(2)=...=A(5)=1/6
A(6)=A(7)=...=A(10)=(1/6)^2
Etc.

I think this is already where I fail, because the rest is pretty much the same. I was jumping back and forth between modulo 5 and modulo 6 just because the whole thing is offset by 1 and the gaps didn't work out. Let's correct this now...

Let X-1 = 5a + b, 0 <= b < 5. (notice the -1!!) Then the probability that a DRN gives exactly X is p(DRN = X) = (1/6)^(a+1).
The probability that it is X or greater is:
http://img159.imageshack.us/img159/5...etexcgilv4.gif

Now, we have two ways of measuring all the (x,y) in IN x IN which sum is equal to or greater than X: Either we take all the (x,y) with x+y &lt; X and subtract the probability of them showing up simultaneously from 1, thus inverting the set, like you did if I understood right, or measure the following (with a loose mathematical notation): <font class="small">Code:</font><hr /><pre> (1, &gt;= X-1)
(2, &gt;= X-2)
(3, &gt;= X-3)
... etc.
(X-1, &gt;= 1)
(&gt;= X, *)</pre><hr />
which should be equal to {(x,y) | x+y &gt;= X}. I implemented both versions in Python again: <font class="small">Code:</font><hr /><pre>#!/usr/bin/env python

# p(DRN) &gt;= x
def p_1(x):
if x &lt; 1:
return 1
b = (x-1) % 5
a = (x-1) / 5
return (6-b)*pow((float(1)/6), a+1)

# p(DRN) == x
def p_2(x):
if x &lt; 1:
return 0
b = (x-1) % 5
a = (x-1) / 5
return pow((float(1)/6), a+1)

# p(2d6oe) &gt;= x
def doubledrn(x):
M = [(a,b) for a in range(1,x-1) for b in range(1,x-a)]
s = 0.0
for (x_1, x_2) in M:
s += p_2(x_1)*p_2(x_2)
return 1-s

# p(2d6oe) &gt;= x (alternate version)
def doubledrn_2(x):
s = p_1(x)
for y in range(1,x):
s += p_2(y)*p_1(x-y)
return s

for x in range(2,20):
print "&gt;= %2d : %f" % (x, doubledrn(x))
print "&gt;= %2d : %f" % (x, doubledrn_2(x))</pre><hr /> and huzzah, they both give the same result, and it is: <font class="small">Code:</font><hr /><pre>&gt;= 2 : 1.000000
&gt;= 3 : 0.972222
&gt;= 4 : 0.916667
&gt;= 5 : 0.833333
&gt;= 6 : 0.722222
&gt;= 7 : 0.583333
&gt;= 8 : 0.462963
&gt;= 9 : 0.361111
&gt;= 10 : 0.277778
&gt;= 11 : 0.212963
&gt;= 12 : 0.166667
&gt;= 13 : 0.127315
&gt;= 14 : 0.094907
&gt;= 15 : 0.069444
&gt;= 16 : 0.050926
&gt;= 17 : 0.039352
&gt;= 18 : 0.029578
&gt;= 19 : 0.021605</pre><hr />
http://forum.shrapnelgames.com/image...es/biggrin.gif http://forum.shrapnelgames.com/image...es/biggrin.gif http://forum.shrapnelgames.com/image...es/biggrin.gif

MaxWilson May 11th, 2008 09:23 PM

Re: Maths problem: fatigue vs critical hits
 
Quote:

cleveland said:
Max,

You're absolutely right that the table needs to be shifted, but upon closer inspection of the mechanic, it seems that the shift only needs to be by one row.

Yeah, you're right. Serves me right for misremembering the mechanic.

-Max

lch May 11th, 2008 10:30 PM

Re: Maths problem: fatigue vs critical hits
 
Quote:

lch said:
The probability that it is X or greater is: (...) (6-b)(1/6)^(a+1)

I just noticed that it is way easier to get the same result in a different way than I did. We already know that each element in a modulo "layer" shares the same probability, and that all the following layers together are cramped into something having the same probability, too. So you just need to count from the current element to the end and sum up.

Pehmyt May 25th, 2008 07:48 PM

Re: Maths problem: fatigue vs critical hits
 
I don't know if you are still interested in this, but I was, as it says "maths problem" in the title http://forum.shrapnelgames.com/images/smilies/happy.gif For future reference, if nothing else, the actual probability distributions for 1d6oe and 2d6oe (=DRN in the manual) are:
http://www.helsinki.fi/~mtvepsal/p1x.png
http://www.helsinki.fi/~mtvepsal/p2x.png
and for the original question,
http://www.helsinki.fi/~mtvepsal/p2sum.png
In all expressions X=5n+r, with 1&lt;=r&lt;=5 (note limits!).

The first one is more or less trivial, the second is proven by induction in n and the third follows from that by straightforward summation.

Revolution May 25th, 2008 07:56 PM

Re: Maths problem: fatigue vs critical hits
 
http://forum.shrapnelgames.com/images/smilies/shock.gif
I started reading all of this and thought of this picture...

http://i289.photobucket.com/albums/l...jun20gal49.jpg

moderation May 25th, 2008 09:32 PM

Re: Maths problem: fatigue vs critical hits
 
So that is what kids are learning in school these days. http://forum.shrapnelgames.com/images/smilies/eek.gif

Wick May 25th, 2008 10:10 PM

Re: Maths problem: fatigue vs critical hits
 
With only a little calculus long, long ago I can't play math, but I do enjoy watching it.


All times are GMT -4. The time now is 04:20 PM.

Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©1999 - 2025, Shrapnel Games, Inc. - All Rights Reserved.