sza
sza
  • Threads: 6
  • Posts: 37
Joined: May 28, 2017
May 25th, 2025 at 8:25:41 AM permalink
I conducted a simulation of Super Hot Roll Triple Play and found that the average multiplier per hand is about 4.9X, which is significantly lower than 6X. Assuming that each single hand receives a multiplier at the same odds, I determined that the probability of getting a multiplier is approximately 1 in 36.4 hands to align with the game's published rate of 1 in 4.99 hands.

Simulated for 5M hands -
Dealt Multipliers: 137764 0.0275528
Draw Multipliers: 862925 0.172585
Multipliers Frequency: 1 in 4.996557371970712 games.
Average Multiplier per Game: 4.9018212

Here is my program. Can anyone take a look and see if I made a mistake?

Btw this site is garbage. It doesn’t render the subscripts of the arrays in the code section.


import random


def should_roll_dice():
probability = 36.4
return random.random() < (1 / probability)


# Example usage:
def simulate(n_play):
current_hand_multipliers = [False] * n_play
next_hand_multipliers = [False] * n_play

n = 5000000
counter = 0
counter_dealt = 0
sum_multiplier = 0
for _ in range(n):
# move next hand multipliers to current
for i in range(n_play):
current_hand_multipliers = next_hand_multipliers
next_hand_multipliers = False

# The multiplier can ONLY show on the main hand when the hand is dealt
hand_a = should_roll_dice()

# When the multiplier shows, all hands get current and next multipliers
if hand_a:
counter_dealt += 1
for i in range(n_play):
current_hand_multipliers = True
next_hand_multipliers = True
else:
# if the main hand gets no multiplier on the deal, then loop through each hand to determine if it gets a multiplier
for i in range(n_play):
# if the hand has a multiplier, the next hand gets a multiplier if qualified
if current_hand_multipliers:
next_hand_multipliers = should_roll_dice()
else:
# if the hand has no multiplier, the multiplier sets both current and the next hand
current_hand_multipliers = should_roll_dice()
next_hand_multipliers = current_hand_multipliers

if any(current_hand_multipliers):
counter += 1

for i in range(n_play):
sum_multiplier += 7 if current_hand_multipliers else 1

print("Dealt Multipliers:", counter_dealt, counter_dealt / n)
print("Draw Multipliers:", counter - counter_dealt, (counter - counter_dealt) / n)
print("Multipliers Frequency: 1 in", n / counter, "games.")
print("Average Multiplier per Game:", sum_multiplier / n)


simulate(n_play=3)
  • Jump to: