OK. So here's the monte carlo simulator (written in Perl) I'll let it run a few million times and will report back the results. (If you want to try running it yourself and don't currently have perl installed, you can download it for WIN32 from http://activeperl.com/Products/Downl...id=ActivePerl).
Code:
#!/usr/local/bin/perl
use strict;
print "TRIAL #\tSPINS\tTRUMP WIN\tCASINO END\n";
################CONSTANTS################
my $START_CASINO = \(100000); # Casino's starting bankroll
my $START_TRUMP = \(4.2 * 10**9); # Trump's starting bankroll
my $PROB_WIN = \(18/38); # Probability of trump winning one round of roulette
my $PAY_OFF = \(1); # amount won if above
my $BET_UNIT = \(100000); # a single betting unit
################CONSTANTS################
my $trials;
while (++$trials) {
my ($cur_casino, $cur_trump,$cur_bet) = ($$START_CASINO,$$START_TRUMP,$$BET_UNIT,);
my $spins;
$cur_bet = $cur_casino if $cur_bet > $cur_casino;
$cur_bet = $cur_trump if $cur_bet > $cur_trump;
while ($cur_casino > 0 && $cur_trump > 0) {
$spins++;
if (rand() <= $$PROB_WIN) {
# trump wins
$cur_casino -= $cur_bet;
$cur_trump += $cur_bet;
} else {
# casino wins
$cur_casino += $cur_bet;
$cur_trump -= $cur_bet;
$cur_bet *= 2;
$cur_bet = $cur_casino if $cur_bet > $cur_casino;
$cur_bet = $cur_trump if $cur_bet > $cur_trump;
}
}
print $trials . "\t" . &commify($spins) . "\t" . &commify($cur_trump-$$START_TRUMP) . "\t" . &commify($cur_casino-$$START_CASINO) . "\n";
}
sub commify {
my ($num, $def_dec, $dec,) = (shift, 0,);
$num =~ s/(\$|,)//g;
unless (defined($dec = shift)) {
$dec = $def_dec;
}
$num = sprintf("%.${dec}f",$num);
1 while ($num =~ s/^([-+]?\d+)(\d{3})/$1,$2/);
$num =~ s/^-0$/0/;
return ($num);
}