Advertisement
Guest User

Untitled

a guest
Aug 31st, 2015
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. import random
  2.  
  3. def simulate(bank=1000.0, percentage=2.0, races=10000):
  4. min_odds = 2.4
  5. max_odds = 13.0
  6. 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]
  7. original_bank = bank
  8. want_to_win = (percentage / 100) * bank
  9. races_run = 0
  10. wins = 0
  11. losses = 0
  12.  
  13. for race_number, race in enumerate(range(races + 1)):
  14. races_run = races_run + 1
  15. deficit = max(original_bank - bank, 0)
  16. odds = round(random.uniform(min_odds, max_odds), 2)
  17. #odds = float(random.choice(sample_odds))
  18. bet = round((want_to_win + deficit) / odds, 2)
  19.  
  20. if bet > bank:
  21. print("We cant bet on Race %d, we're out of money." % race_number)
  22. break
  23.  
  24. bank = bank - bet # place the bet
  25.  
  26. #won = random.choice(range(1, 9)) == 1 # uses number of runners to calculate win odds
  27. won = win_or_lose(odds) # uses odds to calculate chances of winning
  28. if won:
  29. wins = wins + 1
  30. winnings = want_to_win + deficit
  31. bank = bank + winnings
  32. print("Race %d. Odds %.2f. Bet $%.2f. WON $%.2f" % (race_number, odds, bet, winnings))
  33. else:
  34. losses = losses + 1
  35. print("Race %d. Odds %.2f. Bet $%.2f. LOST." % (race_number, odds, bet))
  36.  
  37. print("Current Bank: $%f" % bank)
  38.  
  39. print("------------------------------------------------")
  40. print("Finished Simulation after %d races." % (races_run))
  41. if losses == 0:
  42. # dont divide by zero
  43. losses = 1
  44. win_percent = round((wins / losses) * 100, 2)
  45. print("Wins %d, Losses: %d, Win %%: %%%.2f " % (wins, losses, win_percent))
  46. winnings = bank - original_bank
  47. print("|Bank: $%.2f. Winnings: $%.2f" % (bank, winnings))
  48.  
  49. if bank > original_bank:
  50. print("Success")
  51. return True
  52. else:
  53. print("Failure")
  54. return False
  55.  
  56. def win_or_lose(odds):
  57. percent_win = 16.45 # (1.0 / odds) * 100
  58. pick = random.uniform(1.00, 100.00)
  59. print("percent_win: %.2f" % percent_win)
  60. print("pick: %.2f" % pick)
  61. return pick <= percent_win
  62.  
  63. if __name__ == '__main__':
  64. wins = 0
  65. losses = 0
  66. for x in range(100):
  67. if simulate():
  68. wins = wins + 1
  69. else:
  70. losses = losses + 1
  71. print("|100 simulations run. Wins %d, Losses: %d" % (wins, losses))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement