View Single Post
  #19  
Old 11-06-2006, 10:23 PM
pzhon pzhon is offline
Senior Member
 
Join Date: Mar 2004
Posts: 4,515
Default Re: ICM problems

ICM-predicted probabilities of finishing last with chip stacks 1, 2, ... 100:

1 0.51609432333124221785
2 0.21321188990848979709
3 0.10730956751035384068
4 0.059750455028267008731
5 0.035488752610857001093
6 0.022071595113771953758
7 0.014216683846631049432
8 0.0094161950449655082157
9 0.0063812062388728451803
10 0.0044086199339784030072
20 0.00021111503066950183804
30 0.000019498738229098345387
40 2.554789938882243882844891 x 10^-6
50 4.202955272341909711638795 x 10^-7
60 8.145255901318414223432787 x 10^-8
70 1.789417913036532507262767 x 10^-8
80 4.344852176919571241218451 x 10^-9
90 1.145466693678780882931910 x 10^-9
100 3.23650498103496640628121 x 10^-10

This took 12 hours with the faster method I described. It's still not quite fast enough to use on large tournaments as implemented in Mathematica, but it might be fast enough when programmed directly.

<ul type="square">
newarray[probarray_, addstack_] := {chiptotal = Length[probarray[[1]]];
Table[(1/Binomial[chiptotal + addstack, addstack])
(Binomial[chiptotal - j + addstack, addstack]
If[j &lt;= chiptotal &amp;&amp; ii &lt;= Length[probarray],probarray[[ii]][[j]], 0] +
Sum[If[k &gt;= j || ii == 1, 0,
Binomial[j - 1, k] Binomial[chiptotal - j + addstack, addstack - k]
If[j - k &lt;= chiptotal, probarray[[ii - 1]][[j - k]]],0], {k, addstack}]),
{ii, Length[probarray] + 1}, {j, chiptotal + addstack}]}[[1]]

fullarray[initstack_, oppstacks_] := fullarray[initstack, oppstacks] =
{temparray = {Table[If[ii == 1, 1, 0], {ii, initstack}]};
Do[temparray = newarray[temparray, oppstacks[[ii]]], {ii, Length[oppstacks]}];
temparray}[[1]]
[/list]
Reply With Quote