Kast to terninger

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%.

Prøve på nytt?

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%.

Kamp

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).

  • 5
    83.33%
  • 6
    72.22%
  • 7
    58.33%
  • 8
    41.66%
  • 9
    27.77%

Kodeeksempler

Eksempler på simuleringer som er kjørt for å komme frem til statistikkgrunnlaget.
Alle simuleringer er kjørt i Python, med 15.000.000 terningkast.

Sjanse for resultat 7 eller høyere

Standard: Sjanse for resultat 7 eller høyere.
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()
  
Flaks: Sjanse for resultat 7 eller høyere.
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()
  
Uflaks: Sjanse for resultat 7 eller høyere.
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()
  

Sjanse for ulike terningkast

Standard: Fordeling av terningkast.
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()
  
Flaks: Fordeling av terningkast.
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()
  
Uflaks: Fordeling av terningkast.
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()
  

Sjanse for resultat 7 eller høyere etter 3 kast

Standard: Sjanse for resultat 7 eller høyere, etter 3 terningkast.
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()  
  

Sjanse for resultat 5-9 eller høyere i kast

Standard: Sjanse for resultat 5, 6, 7, 8 og 9.
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()