Lesson 3.17
Hacks
- 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
 
 
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")
def parse_input(input_string):
    if input_string.strip() in {"1", "2", "3","4", "5", "6", "7", "8", "9", "10"}:
        return int(input_string)
    else:
        print("Please enter a number from 1 to 10.")
        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-10] ")
num_dice = parse_input(num_dice_input)
roll_results = roll_dice(num_dice)
print("you rolled:", roll_results) 
Here in the dice roll, I changed the amount of sides the dice had. So instead of a six-sided die, I changed the values to make it a 10-sided die.
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)