![]() |
Maths problem: fatigue vs critical hits
A DNR (Dominions random number) works like this:
Take a random number between 1 and 6. If the result is 6, take a random number between 0 and 5 and add it to the sum. If the result is a 5, repeat until the result isn't a 5. What is the probability of getting a number of X or higher with 2 DRNs? The manual lists comparisons, or chances of 2d6oe producing a value greater than 2d6 oe by a spesific amount. There comparisons are used for almost everything from attack to damage. There's only a single mechanic that I know of that uses 2d6oe value that ISN'T compared into another 2d6oe value, and that's the chance of a critical hit. Page 76 of the manual states the a critical hit happens if 2d6oe minus (fatigue/15) is less than 2. For a single DRN, chance of results between 1-5 is 5/6. Chance of results larger than 5 is 1/6, result larger than 10 is 1/36, chance of result larger than 15 is 1/216 etc etc. Any math students/professors/hobbyists want to try their hand at solving this? |
Re: Maths problem: fatigue vs critical hits
Today's my day off, so I'm in no mood to derive or explain this result, but some quick fun with Excel yielded the following:
X.......Chance that 2d6oe > X 2.......0.972 3.......0.917 4.......0.833 5.......0.722 6.......0.583 7.......0.463 8.......0.361 9.......0.278 10......0.213 11......0.167 12......0.127 13......0.095 14......0.069 15......0.051 16......0.039 17......0.030 18......0.022 The values then slowly approach zero. I invite everyone to cross-check my result, as I've been drinking for the last hour. <font color="brown">Edit: cleaned up the table, apparently the forums don't like TAB </font> |
Re: Maths problem: fatigue vs critical hits
So to put that into perspective...
Unit Fatigue...... %Critical Hits 0 - 14 ................ 0.0% 15 - 29 .............. 2.8% 30 - 44 .............. 8.3% 45 - 59 .............. 16.7% 60 - 74 .............. 27.8% 75 - 89 .............. 41.7% 90 - 104 ............ 53.7% 105 - 119 .......... 63.9% 120 - 134 .......... 72.2% 135 - 149 .......... 78.7% 150 - 164 .......... 83.3% 165 - 179 .......... 87.3% 180 - 194 .......... 90.5% 195 - 200 .......... 93.1% <font color="brown">Edit: And an image... Edit2: Values shifted & new image uploaded based on MaxWilson's feedback (thanks!). Also changed to %</font> http://img393.imageshack.us/img393/4...problm3.th.jpg |
Re: Maths problem: fatigue vs critical hits
Quote:
When one applies basic calculus regarding geometric series to the probabilities you already gave, the result is: Let X = 6a + b, 0 <= b < 6. Then the probability that a DRN gives X or higher on a roll is (7-b)(1/6)^(a+1). Now with two dice, I'm not sure but I think it goes like this: You want a combination of two rolls that add up to X, so X = Y+(X-Y) and 0 < Y < X. Your probability is given as follows: For every Y from 1 to X-1, multiply P(Y) and P(X-Y) as given above. Add all of them together, divide by X-1. That's your probability for two rolls. You can simplify it into a closed form, which could be kinda tricky because of the modulo representation for Y and X-Y. Maple helps. |
Re: Maths problem: fatigue vs critical hits
I would say from my observations of the effects of fatigue that the description of how crits function is not correct.
|
Re: Maths problem: fatigue vs critical hits
In what way?
OTOH I don't think I know how it is supposed to work. 2d6oe < fat/10 to get Prot/2 if I take a wild guess. |
Re: Maths problem: fatigue vs critical hits
Cleveland. Nice work. Small correction, though: a critical hit happens if a DRN is _less_ than fatigue/15, rounded down. There's a .97 probability that a DRN is < 2, which means there's a .03 probability that it's >= 2, which means there's a 3% chance of critical hit when your fatigue/15 is 3. Thus, the table needs to shift by two rows. Chance of critical hit from fatigue 0-29 is 0%, 30-44 is 3%, etc.
-Max Edit: poetic justice. There's a .97 probability that it's > 2, and .03 that it's <= 2. This is the opposite of what I typed. |
Re: Maths problem: fatigue vs critical hits
Very useful, thanks.
|
Re: Maths problem: fatigue vs critical hits
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. This is because a critical hit is scored when the DRN - Fatigue/15 is LESS THAN 2. For example, let's say Stay Puft, Hero of Alexandria, swings at Gromulos, The Contemptuous Cyclops. Gromulos has 20 fatigue already, so Stay Puft gets a bonus of 20/15 = 1.33 --> 1 to his critical hit roll. Since Stay Puft is particularly good at smiting villains, his DRN = 2 (which had a 1/6*1/6 = 2.8% chance); subtracting the fatigue bonus of 1, his final critical hit roll is 2 - 1 = 1. Since 1 < 2 (the threshold for a critical hit), he scores yet another devastating smash on Gromulos, one of a presumed series of such blows. So yes, the table needs to be shifted, but only by 1 row, as there is a 2.8% chance of a critical hit when the opponent has 20 fatigue. Again, I encourage all to double-check my logic. I've only had 1/2 cup of coffee so far. |
Re: Maths problem: fatigue vs critical hits
Quote:
X = 6a + b, 0 <= b < 6. Then the probability that a DRN gives X or higher on a roll is P(">= X") = (7-b)(1/6)^(a+1). The probability that it equals X is P("= X") = (1/6)^(a+1). But measuring a two-die roll isn't as easy. Here's a small python program that I used to check cleveland's calculations: <font class="small">Code:</font><hr /><pre>#!/usr/bin/env python def p_1(x): if x < 1: return 1 b = x % 6 a = (x-b)/6 return (7-b)*pow((float(1)/6), a+1) def p_2(x): if x < 1: return 0 b = x % 6 a = (x-b)/6 return pow((float(1)/6), a+1) 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 def doubledrn_2(x): s = p_1(x) for y in range(1,x-1): s += p_2(y)*p_1(x-y) return s for x in range(2,18): print ">= %2d : %f" % (x, doubledrn(x))</pre><hr /> And here's the output of it: <font class="small">Code:</font><hr /><pre>>= 2 : 1.000000 >= 3 : 0.972222 >= 4 : 0.916667 >= 5 : 0.833333 >= 6 : 0.722222 >= 7 : 0.583333 >= 8 : 0.462963 >= 9 : 0.361111 >= 10 : 0.277778 >= 11 : 0.212963 >= 12 : 0.166667 >= 13 : 0.119599 >= 14 : 0.079475 >= 15 : 0.046296 >= 16 : 0.020062 >= 17 : 0.000772</pre><hr /> So as far as I can tell, cleveland's table is right. The difference in later numbers probably comes from rounding precision being a ***** again, as my code probably isn't numerically stable. If I'd calculate greater values, the numbers even turn negative! I'd be interested what formulas cleveland used to be able to trick the rounding precision. |
All times are GMT -4. The time now is 05:55 PM. |
Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©1999 - 2025, Shrapnel Games, Inc. - All Rights Reserved.