Created
March 8, 2020 22:52
-
-
Save breeko/5e147dd075040589af8af1af0e72ebdd to your computer and use it in GitHub Desktop.
A simulation of a coin-flipping game
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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