Skip to content
{{ message }}

Instantly share code, notes, and snippets.

# itdxer/double-bet-on-fail-strategy-sim.py Secret

Last active May 24, 2021
Simulation that shows that with a fair roulette wheel Martingale betting system still has a 50% probability of doubling initial amount of money
 import random N = 50 p_win = 0.5 num_experiments = 100000 def play_game(N): assert N >= 0 target_N = 2 * N # Keep playing until you either lost all of your money or doubled your initial amount while 0 < N < target_N: assert N >= 0 next_bet = 1 # always bet 1 at the beggining start_N = N while next_bet <= N: # Check if we have enough money to make a bet current_bet = next_bet N -= current_bet assert N >= 0 # Spin the roulette wheel and observe the outcome (in terms of win or lose) won = random.random() <= p_win if won: N += 2 * current_bet assert N == (start_N + 1) # we always win +1 break else: # Follow the strategy. When we lose, double the amount of money and try again next_bet *= 2 assert N in (0, target_N) return N != 0 outcomes = [play_game(N) for _ in range(num_experiments)] print(sum(outcomes) / num_experiments) # observed average success rate print((1 - 1/N) ** N) # invalid prediction
to join this conversation on GitHub. Already have an account? Sign in to comment