Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def simulate(bank=1000.0, percentage=2.0, races=10000):
- min_odds = 2.4
- max_odds = 13.0
- sample_odds = [3,6,21,5.5,5.5,5,2.8,18,8,6.5,4,3.3,2.4,21,5,3.2,3.3,6.5,5.5,16,3.4,26]
- original_bank = bank
- want_to_win = (percentage / 100) * bank
- races_run = 0
- wins = 0
- losses = 0
- for race_number, race in enumerate(range(races + 1)):
- races_run = races_run + 1
- deficit = max(original_bank - bank, 0)
- odds = round(random.uniform(min_odds, max_odds), 2)
- #odds = float(random.choice(sample_odds))
- bet = round((want_to_win + deficit) / odds, 2)
- if bet > bank:
- print("We cant bet on Race %d, we're out of money." % race_number)
- break
- bank = bank - bet # place the bet
- #won = random.choice(range(1, 9)) == 1 # uses number of runners to calculate win odds
- won = win_or_lose(odds) # uses odds to calculate chances of winning
- if won:
- wins = wins + 1
- winnings = want_to_win + deficit
- bank = bank + winnings
- print("Race %d. Odds %.2f. Bet $%.2f. WON $%.2f" % (race_number, odds, bet, winnings))
- else:
- losses = losses + 1
- print("Race %d. Odds %.2f. Bet $%.2f. LOST." % (race_number, odds, bet))
- print("Current Bank: $%f" % bank)
- print("------------------------------------------------")
- print("Finished Simulation after %d races." % (races_run))
- if losses == 0:
- # dont divide by zero
- losses = 1
- win_percent = round((wins / losses) * 100, 2)
- print("Wins %d, Losses: %d, Win %%: %%%.2f " % (wins, losses, win_percent))
- winnings = bank - original_bank
- print("|Bank: $%.2f. Winnings: $%.2f" % (bank, winnings))
- if bank > original_bank:
- print("Success")
- return True
- else:
- print("Failure")
- return False
- def win_or_lose(odds):
- percent_win = 16.45 # (1.0 / odds) * 100
- pick = random.uniform(1.00, 100.00)
- print("percent_win: %.2f" % percent_win)
- print("pick: %.2f" % pick)
- return pick <= percent_win
- if __name__ == '__main__':
- wins = 0
- losses = 0
- for x in range(100):
- if simulate():
- wins = wins + 1
- else:
- losses = losses + 1
- print("|100 simulations run. Wins %d, Losses: %d" % (wins, losses))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement