Doyle Brunson and Bill Gates Play a Poker Match

Doyle Brunson (one of the most successful poker players ever) and Bill Gates (one of the most successful industrialists ever and a poker enthusiast) sit down to play a poker match. Each one of them buys in for $1,000,000. When one player loses his $1,000,000, the winner takes $1,000,000 off the table, and the loser buys in for another $1,000,000. They then play another match. This continues until one player having just lost another buyin finds himself with no more money with which to buy in again and is declared busted and the match is complete. The question is who is the favorite to bust whom? We assume that while Doyle is no pauper, Bill has a much, much larger bankroll. For given bankrolls, these are the edge differences that result in one player being the favorite.

note: all bankrolls are expressed in units of $1,000,000, so bill_br = 50k means we assume Bill is starting out with $50,000,000,000 (50 billion dollars).

bill_br = 50k

doyle_br    necessary edge(%)
20              51
19              51
18              51ish
17              51ish
16              51+
16              51+
14              52
13              52
12              52
11              52
10              52
9               52
8               53
7               53
6               53
5               54
4               54ish
3               56
2               59
1               66  

So if Bill has fifty billion dollars, and Doyle has just 19 or 20 million dollars, Doyle is the favorite to break Bill even if his edge in the match is only 51:49. At an edge of 54:46, he only needs five million dollars to be the favorite to break Bill. I leave it as an exercise to the reader to demonstrate that for a bankroll ratio of 1:100000000000, Doyle needs a 2:1 edge to be breakeven to win the match.
(hint: Epstein ch 3 appears to cover it.)

Data from the Simulations


For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 20 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51             552            448       
52             817            183       
53             918             82       
54             965             35       
55             983             17       
56             989             11       
57             995              5       
58             999              1       
59             999              1       
60            1000              0       
61             998              2       
62            1000              0       
63            1000              0       
64            1000              0       
65            1000              0       
66            1000              0       
67            1000              0       
68            1000              0       
69            1000              0       
70            1000              0       
71            1000              0       
72            1000              0       
73            1000              0       
74            1000              0       
75            1000              0       
76            1000              0       
77            1000              0       
78            1000              0       
79            1000              0       
80            1000              0       

Note: This means that if Doyle has 20 million dollars and a 2:1 edge in each match,
Bill has just about no chance in hell of not getting broke.



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 19 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            522            478       
52            785            215       
53            899            101       
54            951             49       
55            983             17       
56            987             13       
57            997              3       
58            998              2       
59            998              2       
60            999              1       
61            999              1       
62            999              1       
63           1000              0       
64           1000              0       
65           1000              0       
66           1000              0       
67           1000              0       
68           1000              0       
69           1000              0       
70           1000              0       
71           1000              0       
72           1000              0       
73           1000              0       
74           1000              0       
75           1000              0       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 18 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            492            508       
52            756            244       
53            880            120       
54            949             51       
55            975             25       
56            990             10       
57            994              6       
58            997              3       
59           1000              0       
60            999              1       
61           1000              0       
62           1000              0       
63           1000              0       
64           1000              0       
65           1000              0       
66           1000              0       
67           1000              0       
68           1000              0       
69           1000              0       
70           1000              0       
71           1000              0       
72           1000              0       
73           1000              0       
74           1000              0       
75           1000              0       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 17 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            502            498       
52            738            262       
53            866            134       
54            947             53       
55            961             39       
56            984             16       
57            992              8       
58            998              2       
59            996              4       
60           1000              0       
61            998              2       
62           1000              0       
63           1000              0       
64           1000              0       
65           1000              0       
66           1000              0       
67           1000              0       
68           1000              0       
69           1000              0       
70           1000              0       
71           1000              0       
72           1000              0       
73           1000              0       
74           1000              0       
75           1000              0       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 16 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            486            514       
52            712            288       
53            876            124       
54            916             84       
55            968             32       
56            983             17       
57            990             10       
58            996              4       
59            997              3       
60            997              3       
61           1000              0       
62           1000              0       
63           1000              0       
64           1000              0       
65           1000              0       
66           1000              0       
67           1000              0       
68           1000              0       
69           1000              0       
70           1000              0       
71           1000              0       
72           1000              0       
73           1000              0       
74           1000              0       
75           1000              0       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 15 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            466            534       
52            687            313       
53            831            169       
54            904             96       
55            955             45       
56            976             24       
57            985             15       
58            994              6       
59            995              5       
60            999              1       
61            999              1       
62            999              1       
63            999              1       
64           1000              0       
65           1000              0       
66           1000              0       
67           1000              0       
68           1000              0       
69           1000              0       
70           1000              0       
71           1000              0       
72           1000              0       
73           1000              0       
74           1000              0       
75           1000              0       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 14 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            432              568       
52            678              322       
53            821              179       
54            915              85       
55            936              64       
56            970              30       
57            976              24       
58            993              7       
59            995              5       
60            997              3       
61            999              1       
62            999              1       
63            998              2       
64           1000              0       
65           1000              0       
66           1000              0       
67           1000              0       
68           1000              0       
69           1000              0       
70           1000              0       
71           1000              0       
72           1000              0       
73           1000              0       
74           1000              0       
75           1000              0       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 13 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            416            584       
52            640            360       
53            756            244       
54            865            135       
55            932             68       
56            963             37       
57            972             28       
58            981             19       
59            997              3       
60            993              7       
61            996              4       
62            997              3       
63            999              1       
64           1000              0       
65            999              1       
66           1000              0       
67           1000              0       
68           1000              0       
69           1000              0       
70           1000              0       
71           1000              0       
72           1000              0       
73           1000              0       
74           1000              0       
75           1000              0       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 12 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            356            644       
52            607            393       
53            766            234       
54            841            159       
55            897            103       
56            949             51       
57            967             33       
58            988             12       
59            987             13       
60            990             10       
61            995              5       
62            996              4       
63            1000             0       
64            999              1       
65            1000             0       
66            1000             0       
67            1000             0       
68            1000             0       
69            1000             0       
70            1000             0       
71            1000             0       
72            1000             0       
73            1000             0       
74            1000             0       
75            1000             0       
76            1000             0       
77            1000             0       
78            1000             0       
79            1000             0       
80            1000             0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 11 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            379            621       
52            584            416       
53            726            274       
54            828            172       
55            906             94       
56            932             68       
57            958             42       
58            968             32       
59            966             34       
60            993              7       
61            992              8       
62            999              1       
63            997              3       
64           1000              0       
65            999              1       
66           1000              0       
67            999              1       
68           1000              0       
69           1000              0       
70           1000              0       
71           1000              0       
72           1000              0       
73           1000              0       
74           1000              0       
75           1000              0       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 10 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            332            668       
52            550            450       
53            690            310       
54            794            206       
55            863            137       
56            913             87       
57            939             61       
58            961             39       
59            976             24       
60            972             28       
61            996              4       
62            990             10       
63            996              4       
64           1000              0       
65            999              1       
66            997              3       
67           1000              0       
68            999              1       
69           1000              0       
70           1000              0       
71           1000              0       
72           1000              0       
73           1000              0       
74           1000              0       
75           1000              0       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 9 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            295            705       
52            519            481       
53            646            354       
54            740            260       
55            837            163       
56            885            115       
57            940             60       
58            942             58       
59            966             34       
60            976             24       
61            981             19       
62            990             10       
63            994              6       
64            997              3       
65            994              6       
66            996              4       
67            998              2       
68            998              2       
69           1000              0       
70           1000              0       
71            999              1       
72           1000              0       
73           1000              0       
74           1000              0       
75           1000              0       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 8 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            253            747       
52            450            550       
53            600            400       
54            740            260       
55            802            198       
56            852            148       
57            877            123       
58            929             71       
59            947             53       
60            966             34       
61            973             27       
62            975             25       
63            986             14       
64            990             10       
65            993              7       
66            991              9       
67            998              2       
68            998              2       
69            999              1       
70            998              2       
71            999              1       
72           1000              0       
73           1000              0       
74           1000              0       
75           1000              0       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 7 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            238            762       
52            443            557       
53            605            395       
54            698            302       
55            751            249       
56            842            158       
57            872            128       
58            892            108       
59            913             87       
60            943             57       
61            948             52       
62            977             23       
63            985             15       
64            981             19       
65            989             11       
66            991              9       
67            994              6       
68            998              2       
69            997              3       
70            998              2       
71            998              2       
72            997              3       
73            998              2       
74            997              3       
75            999              1       
76           1000              0       
77           1000              0       
78           1000              0       
79           1000              0       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 6 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            194            806       
52            380            620       
53            509            491       
54            618            382       
55            697            303       
56            781            219       
57            811            189       
58            847            153       
59            902             98       
60            909             91       
61            922             78       
62            941             59       
63            965             35       
64            964             36       
65            977             23       
66            975             25       
67            986             14       
68            988             12       
69            990             10       
70            994              6       
71            995              5       
72            996              4       
73            998              2       
74            998              2       
75            999              1       
76            997              3       
77           1000              0       
78            998              2       
79            999              1       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 5 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            174            826       
52            340            660       
53            478            522       
54            548            452       
55            632            368       
56            702            298       
57            733            267       
58            800            200       
59            850            150       
60            847            153       
61            914             86       
62            897            103       
63            937             63       
64            939             61       
65            950             50       
66            954             46       
67            975             25       
68            979             21       
69            989             11       
70            995              5       
71            989             11       
72            988             12       
73            993              7       
74            994              6       
75            995              5       
76            999              1       
77           1000              0       
78            999              1       
79            999              1       
80           1000              0       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 4 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            135            865       
52            285            715       
53            380            620       
54            501            499       
55            550            450       
56            649            351       
57            688            312       
58            723            277       
59            752            248       
60            790            210       
61            822            178       
62            861            139       
63            877            123       
64            902             98       
65            923             77       
66            941             59       
67            933             67       
68            948             52       
69            964             36       
70            967             33       
71            976             24       
72            967             33       
73            982             18       
74            981             19       
75            987             13       
76            991              9       
77            992              8       
78            995              5       
79            996              4       
80            999              1       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 3 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51            123             877       
52            223             777       
53            285             715       
54            358             642       
55            450             550       
56            534             466       
57            589             411       
58            598             402       
59            648             352       
60            713             287       
61            729             271       
62            792             208       
63            795             205       
64            816             184       
65            855             145       
66            867             133       
67            877             123       
68            908              92       
69            911              89       
70            924              76       
71            924              76       
72            936              64       
73            949              51       
74            958              42       
75            961              39       
76            972              28       
77            968              32       
78            972              28       
79            985              15       
80            986              14       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 2 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51             82             918       
52            157             843       
53            210             790       
54            290             710       
55            323             677       
56            376             624       
57            431             569       
58            456             544       
59            525             475       
60            553             447       
61            583             417       
62            626             374       
63            656             344       
64            690             310       
65            694             306       
66            750             250       
67            760             240       
68            773             227       
69            827             173       
70            798             202       
71            853             147       
72            857             143       
73            851             149       
74            879             121       
75            889             111       
76            916              84       
77            900             100       
78            914              86       
79            933              67       
80            947              53       



For initial conditions:
total matches = 1000, bill_br = 50000, doyle_br = 1 

p(D:game)   Doyle wins      Bill Wins
--------+---------------+--------------
51             55             945       
52             86             914       
53            119             881       
54            149             851       
55            177             823       
56            231             769       
57            258             742       
58            268             732       
59            286             714       
60            361             639       
61            380             620       
62            388             612       
63            393             607       
64            431             569       
65            467             533       
66            502             498       
67            493             507       
68            543             457       
69            562             438       
70            583             417       
71            571             429       
72            614             386       
73            633             367       
74            658             342       
75            672             328       
76            705             295       
77            716             284       
78            709             291       
79            725             275       
80            733             267       

Footnote from Mark Watkins

The Brunson/Gates problem is eminently solvable in non-simulation
fashion (and a standard probability exercise I would guess).

Let P(A,B,p)= the probability that a player that has A units
busts a player who has B units, which the A-unit player winning
the 1-unit match probability p of the time.

The recursion formula is thus
P(A,B,p)=p*P(A+1,B-1,p)+(1-p)*P(A-1,B+1,p)
The boundary conditions are P(A+B,0,p)=1 and P(0,A+B,p)=0.

One can now compute any probability exactly if desired.
When p is 1/2, the probability reduces nicely to A/(A+B).

As a related exercise, you can determine the expected length
of the match (I recall it to be like A times B when p is 1/2).

Footnote to the footnote from Mark Watkins

Here's the PARI code (built-in arbitraryprecision prog) and some output.

{
Doyle(X,p)=local(A,B);
A=vector(X-1);B=vector(X-1);
A[X-1]=1-p;B[X-1]=p;
forstep(i=X-2,1,-1,A[i]=(1-p)/(1-p*A[i+1]);B[i]=p*B[i+1]/(1-p*A[i+1]));
P=vector(X-1);
/* P(n)=A[n]*P(n-1)+B[n], where P(n) is the prob of win with n of the X */
P[1]=B[1];
for(i=2,X-1,P[i]=A[i]*P[i-1]+B[i]);
return(P);
}


X is the total number of units in the game.
P[i] is the probability that the p-probability player
wins when having i units to start.

? Doyle(10,1/2)
[1/10, 1/5, 3/10, 2/5, 1/2, 3/5, 7/10, 4/5, 9/10]

? Doyle(20,3/5)
[1162261467/3485735825, 387420489/697147165, 2453663097/3485735825, 43046721/53626705, 14348907/16520075, 636134877/697147165, 3282711057/3485735825, 51549777/53626705, 3396085137/3485735825, 59049/60073, 3446473617/3485735825, 53229393/53626705, 3468868497/3485735825, 694968093/697147165, 16487307/16520075, 53561169/53626705, 3483245457/3485735825, 696885021/697147165, 3485211537/3485735825]

? precision(1.0*Doyle(20,3/5),8)
[0.333433606, 0.555722677, 0.703915391, 0.802710533, 0.868573962, 0.912482914, 0.941755549, 0.961270639, 0.974280699, 0.982954072, 0.988736321, 0.992591153, 0.995161042, 0.996874301, 0.998016473, 0.998777922, 0.999285554, 0.999623975, 0.999849590]

? Doyle(50020,0.5)[20]  /* Chance Doyle wins 20 to 50000 at 50-50 odds */
0.0003998400639744102359045867151

? Doyle(50020,0.51)[20]  /* Chance Doyle wins 20 to 50000 at 51-49 odds */
0.5507189732544075360036931938

? Doyle(50020,0.52)[20]  /* Chance Doyle wins 20 to 50000 at 52-48 odds */
0.7982758589882384159928701283



Now one can write an iterative root-finder to see when Doyle() is about 1/2.

{
Iterate(A,B,S)=local(F,G);
F=Doyle(50000+S,A)[S];G=Doyle(50000+S,B)[S];
while(abs(F-.5)>10^(-10) && abs(G-.5)>10^(-10),
if(abs(F-1/2)>abs(G-1/2),
   A=(B*(F-1/2)-A*(G-1/2))/(F-G);F=Doyle(50000+S,A)[S],
   B=(B*(F-1/2)-A*(G-1/2))/(F-G);G=Doyle(50000+S,B)[S]));
/* Was in a rush or would use Brent's golden mean algorithm */
if(abs(F-1/2)>abs(G-1/2),return([B,G]),return([A,F]));
}


? Iterate(.5,.51,20)
[0.5086634726094520023086142527, 0.4999999999997923448311191908]

? Iterate(.5,.51,19)
[0.5091193462538567416747730718, 0.4999999999999953706119062598]

? Iterate(.5,.52,18)
[0.5096258547051513185778816070, 0.5000000000000027588452188420]

? Iterate(.5,.52,17)
[0.5101919289507634758417339509, 0.5000000000000001982261141331]

? Iterate(.5,.52,16)
[0.5108287311641290069525241667, 0.5000000000325227938629964655]

? Iterate(.5,.52,15)
[0.5115503977406109464531141258, 0.5000000000041063022232170517]

? Iterate(.5,.52,14)
[0.5123751004133301282601060338, 0.5000000000003722560686042830]

? Iterate(.5,.52,13)
[0.5133265964209963408676624705, 0.5000000000000211379361255616]

? Iterate(.5,.52,12)
[0.5144365525466710294744408558, 0.5000000000000005883792741651]

? Iterate(.5,.52,11)
[0.5157481344484590584972177190, 0.4999999999798614582127251280]

? Iterate(.5,.52,10)
[0.5173217448321748671906578515, 0.4999999999997920523155868484]

? Iterate(.5,.52,9)
[0.5192445768259652603143311738, 0.5000000000134948602657460908]

? Iterate(.52,.53,8)
[0.5216473087517141031410957374, 0.5000000000323729013358094308]

? Iterate(.52,.53,7)
[0.5247350488174022923686845179, 0.4999999999999988495252864894]

? Iterate(.52,.53,6)
[0.5288490548999701414078841903, 0.5000000000005314685527132379]

? Iterate(.53,.54,5)
[0.5346019613837415383691483054, 0.5000000000299235212431301154]

? Iterate(.53,.54,4)
[0.5432136168616484577210345681, 0.4999999999895504388534313912]

? Iterate(.55,.56,3)
[0.5575066659755672447297820909, 0.5000000000000568402340788917]

? Iterate(.57,.58,2)
[0.5857864376266526251596361595, 0.4999999999989600835635961384]

? Iterate(.5,.51,1)
[0.6666666666665996799680183861, 0.4999999999998492799280404075]


===

Ok?!

Last Modified 5/22/01


Back to Jim's Poker Page
Back to Jim's Main Page