I Storskogmysteriene løses mange store og små utfordringer - enten det er i kamp eller ute på eventyr - som oftest på den samme måten: Kast to terninger.
En eventyrer som har Flaks kan alltid rulle den første eneren på nytt.
En eventyrer som har Uflaks må alltid rulle den første sekseren på nytt.
Under er en interaktiv demo som viser sannsynligheten for å lykkes med forsøk, både med vanlige terningkast, med flaks, og med uflaks.
Sannsynligheten for å lykkes med Standard kast er 58.33%.
I store spillgrupper kan eventyrerne samarbeides for å lykkes med forsøk. Hvis en eventyrer ikke lykkes med terningkastet, be en ny eventyrer om å rulle to terninger - men stopp ved tre ulike forsøk, for å ikke gjøre det altfor enkelt.
Sannsynligheten for at minst ett forsøk lykkes etter tre terningkast er 92.76%.
Inne i Storskog kan eventyrerne møte på ulike vesen. Hvis møtet ender opp med kamp, løses det på akkurat samme måte som ellers: Kast to terninger.
Eventyrerne ruller for å få likt eller høyere enn vesenets skjold.
Vesenet ruller for å få likt eller høyere enn eventyrernes skjold (som vanligvis er 8).
Eksempler på simuleringer som er kjørt for å komme frem til statistikkgrunnlaget.
Alle simuleringer er kjørt i Python, med 15.000.000 terningkast.
import random
def roll_2d6():
return random.randint(1, 6) + random.randint(1, 6)
def main():
total_sum = 0
rolls_equal_or_above_7 = 0
number_of_rolls = 15000000
for _ in range(number_of_rolls):
roll = roll_2d6()
total_sum += roll
if roll >= 7:
rolls_equal_or_above_7 += 1
average_result = total_sum / number_of_rolls
probability_equal_or_above_7 = (rolls_equal_or_above_7 / number_of_rolls) * 100
print("Average result:", average_result)
print("Probability of rolls equal to or above 7:", probability_equal_or_above_7, "%")
main()
import random
def roll_dice_lucky():
roll = 0
reroll_allowed = True
for _ in range(2):
die = random.randint(1, 6)
if die == 1 and reroll_allowed:
die = random.randint(1, 6)
reroll_allowed = False
roll += die
return roll
def main():
total_sum = 0
rolls_equal_or_above_7 = 0
number_of_rolls = 15000000
for _ in range(number_of_rolls):
roll = roll_dice_lucky()
total_sum += roll
if roll >= 7:
rolls_equal_or_above_7 += 1
average_result = total_sum / number_of_rolls
probability_equal_or_above_7 = (rolls_equal_or_above_7 / number_of_rolls) * 100
print("Average result:", average_result)
print("Probability of rolls equal to or above 7:", probability_equal_or_above_7, "%")
main()
import random
def roll_dice_unlucky():
roll = 0
reroll_allowed = True
for _ in range(2):
die = random.randint(1, 6)
if die == 6 and reroll_allowed:
die = random.randint(1, 6)
reroll_allowed = False
roll += die
return roll
def main():
total_sum = 0
rolls_equal_or_above_7 = 0
number_of_rolls = 15000000
for _ in range(number_of_rolls):
roll = roll_dice_unlucky()
total_sum += roll
if roll >= 7:
rolls_equal_or_above_7 += 1
average_result = total_sum / number_of_rolls
probability_equal_or_above_7 = (rolls_equal_or_above_7 / number_of_rolls) * 100
print("Average result:", average_result)
print("Probability of rolls equal to or above 7:", probability_equal_or_above_7, "%")
main()
import random
def roll_2d6():
return random.randint(1, 6) + random.randint(1, 6)
def main():
roll_counts = {i: 0 for i in range(2, 13)}
number_of_rolls = 15000000
for _ in range(number_of_rolls):
roll = roll_2d6()
roll_counts[roll] += 1
for roll, count in roll_counts.items():
percentage = (count / number_of_rolls) * 100
print(f"{roll}: {percentage:.2f}%")
main()
import random
def roll_dice_lucky():
roll = 0
reroll_allowed = True
for _ in range(2):
die = random.randint(1, 6)
if die == 1 and reroll_allowed:
die = random.randint(1, 6)
reroll_allowed = False
roll += die
return roll
def main():
roll_counts = {i: 0 for i in range(2, 13)}
number_of_rolls = 15000000
for _ in range(number_of_rolls):
roll = roll_dice_lucky()
roll_counts[roll] += 1
for roll, count in roll_counts.items():
percentage = (count / number_of_rolls) * 100
print(f"{roll}: {percentage:.2f}%")
main()
import random
def roll_dice_unlucky():
roll = 0
reroll_allowed = True
for _ in range(2):
die = random.randint(1, 6)
if die == 6 and reroll_allowed:
die = random.randint(1, 6)
reroll_allowed = False
roll += die
return roll
def main():
roll_counts = {i: 0 for i in range(2, 13)}
number_of_rolls = 15000000
for _ in range(number_of_rolls):
roll = roll_dice_unlucky()
roll_counts[roll] += 1
for roll, count in roll_counts.items():
percentage = (count / number_of_rolls) * 100
print(f"{roll}: {percentage:.2f}%")
main()
import random
def roll_2d6():
return random.randint(1, 6) + random.randint(1, 6)
def main():
number_of_rolls = 15000000
successes = 0
for _ in range(number_of_rolls):
for _ in range(3):
if roll_2d6() >= 7:
successes += 1
break
probability_of_success = (successes / number_of_rolls) * 100
print(f"Probability of rolling 7 or higher in up to three attempts: {probability_of_success:.2f}%")
main()
import random
def roll_2d6():
return random.randint(1, 6) + random.randint(1, 6)
def main():
thresholds = [5, 6, 7, 8, 9]
number_of_rolls = 15000000
results = {threshold: 0 for threshold in thresholds}
for _ in range(number_of_rolls):
roll = roll_2d6()
for threshold in thresholds:
if roll >= threshold:
results[threshold] += 1
for threshold, count in results.items():
probability = (count / number_of_rolls) * 100
print(f"Probability of rolling {threshold} or higher: {probability:.2f}%")
main()