3.16 Intro to Simulations - Alexa

  • What is a simulation?
    • A simulation is an imitation of a situation or process
    • Aka a virtual experiment

Guiding questions for a simulation:

- What makes it a simulation?
- What are it’s advantages and disadvantages? 
- In your opinion, would an experiment be better in this situation?

Examples of Simulations:

Simulations are used all the time over many different industries

  • testing safety of a car
  • games
  • testing the efficiency of a parking lot
  • testing a new train route

Simulation vs. Experiment

  • Experiment definition: procedure undertaken to make a discovery, test a hypothesis, or demonstrate a known fact

So, why use a simulation?

  • Advantages:
    • Can be safer
    • More cost-effective
    • More efficient
    • More data in less time
  • Disadvantages:
    • Not as accurate as experiments
    • outside factors not included (ex: in rolling dice simulation gravity and air resistance)

leads into real life game example:

A Real Life Example - Lydia & Ava

  • four corners game here
  • explain how person who chooses a corner is the random.randint

DEBRIEF: why is it better to code simulations than experiement in real life?

import random

status = "in"
while status != "out":
    chooseCorner = input("What corner do you choose?")

    corner = random.randint(1,4)

    if int(chooseCorner) == corner:
        status = "out"
        print("You chose corner number " + chooseCorner + " and you're OUT")
    else:
        print("You chose corner number " + chooseCorner + " and are still in!")
You chose corner number 2 and are still in!
You chose corner number 3 and are still in!
You chose corner number 4 and you're OUT

Hack #1

  • Create an idea for a simulation and describe it (you don’t actually have to code it just think about/answer the guiding questions).

Hack #2

  • Simulations Quiz (either screenshot or paste quiz in your notebook):
questions_number = 6
answers_correct = 0
questions = [
    "True or False: Simulations will always have the same result. \n A: True, \n B: False",
    "True or False: A simulation has results that are more accurate than an experiment \n A: True, \n B: False",
    "True or False: A simulation can model real world events that are not practical for experiments \n A: True, \n B: False",
    "Which one of these is FALSE regarding simulations \n A: Reduces Costs, \n B: Is safer than real life experiments, \n C: More Efficient, \n D: More accurate than real life experiments",
    "Which of the following scenarios would be the LEAST beneficial to have as a simulation \n A: A retail company wants to identify the item which sold the most on their website, \n B: A restaurant wants to determine if the use of robots will increase efficiency, \n C: An insurance company wants to study the impact of rain on car accidents, \n D: A sports car company wants to study design changes to their new bike design ",
    "Which of the following is better to do as a simulation than as a calculation \n A: Keeping score at a basketball game, \n B: Keeping track of how many games a person has won, \n C: Determining the average grade for a group of tests, \n D: Studying the impact of carbon emissions on the environment"
]
question_answers = [
    "B",
    "B",
    "A",
    "D",
    "A",
    "D"
]

print("Welcome to the Simulations Quiz!")

def ask_question (question, answer):
    print("\n", question)
    user_answer = input(question)
    print("You said: ", user_answer)

    if user_answer == answer:
        print("Correct!")
        global answers_correct
        answers_correct = answers_correct + 1
    else:
        print("You are incorrect")
    
for num in range(questions_number):
    ask_question(questions[num], question_answers[num])

print("You scored: ", answers_correct, "/6")

Rolling a Dice Example - Sri

def parse_input(input_string):
    if input_string.strip() in {"1", "2", "3","4", "5", "6"}:
        return int(input_string)
    else:
        print("Please enter a number from 1 to 6.")
        raise SystemExit(1)

import random

def roll_dice(num_dice):
    roll_results = []
    for _ in range(num_dice):
        roll = random.randint(1, 6)
        roll_results.append(roll)
    return roll_results


num_dice_input = input("How many dice do you want to roll? [1-6] ")
num_dice = parse_input(num_dice_input)
roll_results = roll_dice(num_dice)

print("you rolled:", roll_results) 
you rolled: [5, 1, 2]

Remix of Game of Life

Hack #3

  • Describe the rolling dice simulation (answer guiding questions)

Hack #4

  • Add a feature onto the rolling dice simulation above
    • ex: a 14-sided dice or expand the purpose of the simulation (hint: use conditionals to make dice part of a game/real life situation)

Hacks Overview

Use these guiding questions for a simulation:

- What makes it a simulation?
- What are it’s advantages and disadvantages? 
- In your opinion, would an experiment be better in this situation?

Hack #1 (0.3)

  • Create an idea for a simulation and describe it (you don’t actually have to code it just think about/answer the guiding questions).

Hack #2 (0.1)

  • Simulations Quiz (either screenshot or paste quiz in your notebook)

Hack #3 (0.2)

  • Describe the rolling dice simulation (answer guiding questions)

Hack #4 (0.3)

  • Add a feature onto the rolling dice simulation above
    • ex: a 14-sided dice or expand the purpose of the simulation (hint: use conditionals to make dice part of a game/real life situation)

Extra Credit (0.1)

  • For the extra 0.1: try coding a simple simulation and describe it (guiding question)