Unit 3 Lesson 16 Hacks and Notes
Simulations
Notes:
- What is a simulation?
- A simulation is an imitation of a situation or process
- Aka a virtual 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)
- When do you not use a simulation?
- When a situation already has set results/data (won't change)
- Examples: a score in a game, most purchased food, average yearly wage
- Advantages:
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).
An example of a simulation could be simulating the emergency exit procedures in an airplane. This can be used to simulate the crash of the plane and then simulating what people would do for an emergency evacuation. They would not want to do this in real life because having people in a crashing plane is unsafe
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")
Hack #3
- Describe the rolling dice simulation
What makes it a simulation?
This is a simulation because the computer is rolling th dice for you instead of rolling dice by yourself. This code is producing the number from the dice roll with the random numbers.
What are its advantages and disadvantages?
Advantage: quicker, more efficient, don't have to buy dice
Disadvantage: not as hands on/different experience
In your opinion, would an experiment be better in this situation?
An experiment would not necessariily be better because in the simulation you are able to get numbers quickly and instantly
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, 10)
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)
roll_results.sort()
print("here are the numbers you rolled from least to greatest:", roll_results)