Skip to content

Instantly share code, notes, and snippets.

@breeko
Created March 8, 2020 22:52
Show Gist options
  • Save breeko/5e147dd075040589af8af1af0e72ebdd to your computer and use it in GitHub Desktop.
Save breeko/5e147dd075040589af8af1af0e72ebdd to your computer and use it in GitHub Desktop.
A simulation of a coin-flipping game
import random
def play(bankroll, wager_perc, prob_win, payout_perc, num_turns, seed):
""" Plays a coin flipping game and returns the final balance
Inputs:
start (number): starting bankroll
wager_perc (number): percent of bankroll you want to wager at each turn
prob_win (number): probability of a win (e.g. 0.5 is 50% win probability)
payout_perc (number): the payout multiple in case of win (payout = payout_perc * wager)
num_turns (number): the number of turns in the game
seed (number): seed for random number generator
Output:
balance (number): the ending balance of the game
Example:
# flip a fair coin 100 times and wager 1% of the bankroll on each flip
play(bankroll = 100, wager_perc = 0.01, prob_win = 0.5, payout_perc = 1, num_turns = 10, seed = 42)
97.9708
"""
random.seed(seed)
bal = bankroll
for _ in range(num_turns):
wager = wager_perc * bal
r = random.random()
if r > prob_win:
payout = payout_perc * wager
else:
payout = -wager
bal += payout
return bal
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment