CIS192 Python Programming Probability, Simulations & Course Wrap-Up

CIS192 Python Programming Probability, Simulations & Course Wrap-Up

CIS192 Python Programming Probability, Simulations & Course Wrap-Up Raymond Yin University of Pennsylvania December 8, 2016 Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 1 / 21 Outline 1 Probability and Simulations The Two Child Problem Basic Definitions The Law of Large Numbers Monty Hall in Python 2 Looking Forward CIS 192 in Review Next Steps Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 2 / 21 The Two Child Problem Suppose I have two children. I announce that I have a son. What is the probability that both children are boys? Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 3 / 21 Considering the Possibilities Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 4 / 21 Tuesday’s Child I announce that “I have a son who was born on a Tuesday.” Now what is the probability that both children are boys? Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 5 / 21 A Handy Visualization Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 6 / 21 Outline 1 Probability and Simulations The Two Child Problem Basic Definitions The Law of Large Numbers Monty Hall in Python 2 Looking Forward CIS 192 in Review Next Steps Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 7 / 21 Random Variables Definition: A Random Variable is a function from a set of possible outcomes to numeric values. For a coin toss we’ve been mapping [lands heads] to 1 and [lands tails] to 0. The values associated with a die roll are the numbers 1 through 6. We will model random variables with "random" Python functions. Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 8 / 21 Probability Each random variable has an associated Probability Distribution that maps its values to probabilities. Every probability must be in the interval [0, 1]. The sum of the probabilities must equal 1. We say Pr(X = x)=p to denote the probability of an event. For example, if D represents the outcome of a fair die, 1 Pr(D = 3)= 6 Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 9 / 21 Expectation E(X)= x Pr(x) x ⇤ P Where C represents a coin toss as above, E(C)=0.5 1 + 0.5 0 = 0.5 ⇤ ⇤ For a die D, E(D)= 1 1 + + 1 6 = 3.5 6 ⇤ ··· 6 ⇤ Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 10 / 21 Outline 1 Probability and Simulations The Two Child Problem Basic Definitions The Law of Large Numbers Monty Hall in Python 2 Looking Forward CIS 192 in Review Next Steps Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 11 / 21 The Law of Large Numbers The Weak Law of Large Numbers states that as the number of trials approaches infinity, the frequency of a given outcome approaches its true probability. i.e. If we toss a lot of coins, we will get heads close to half the time. Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 12 / 21 Simulations Simulating a situation’s possibilities is easy in Python! Use the random library random() returns a float between 0 and 1 uniformly at random randint(a,b) returns a random integer between a and b inclusive choice(li) samples a random element from li sample(li) returns a randomly selected subset of li shuffle(li) randomly permutes the list li uniform(a, b) returns a float uniformly distributed between a and b Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 13 / 21 Outline 1 Probability and Simulations The Two Child Problem Basic Definitions The Law of Large Numbers Monty Hall in Python 2 Looking Forward CIS 192 in Review Next Steps Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 14 / 21 The Monty Hall Problem You’re on a gameshow with Monty Hall! There are three doors in front of you, two have goats behind them and one has a car. After you pick a door, Monty opens another door, revealing a goat. He then gives you the option of switching. Should you switch? Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 15 / 21 Monty Hall in Python def monty(switch = False): car = randint(1,3) pick = randint(1,3) opened = choice(list({1, 2, 3} - {car, pick})) if switch: pick = choice(list({1, 2, 3} - {pick, opened}) ) if pick == car: return "Car" else: return "Goat" Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 16 / 21 Outline 1 Probability and Simulations The Two Child Problem Basic Definitions The Law of Large Numbers Monty Hall in Python 2 Looking Forward CIS 192 in Review Next Steps Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 17 / 21 Topics We’ve Covered Python Basics & Fundamentals Functional Programming Object-Oriented Programming Iterators, Generators, Exceptions & IO Regular Expressions & Other Modules HTTP Requests / HTML Parsing Data Analysis Machine Learning Natural Language Processing Web Apps Artificial Intelligence Probability & Simulations Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 18 / 21 Outline 1 Probability and Simulations The Two Child Problem Basic Definitions The Law of Large Numbers Monty Hall in Python 2 Looking Forward CIS 192 in Review Next Steps Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 19 / 21 Scratching the Surface Each special topic has MUCH more depth than what we’ve covered this semester. Many topics we haven’t mentioned Parallel & Distributed Computing Concurrency Graphical User Interfaces Testing Frameworks etc. Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 20 / 21 What’s Next? I hope you find the skills you’ve acquired from CIS 192 useful! Build your own side-projects, big or small! Learn more about Python! PyCon conference recordings Obey the Testing Goat (TDD in Python + Web Dev) New Coder: practical tutorials in Python Join the Python community! /r/Python subreddit Trending GitHub Python repositories StackOverflow Python questions Raymond Yin (University of Pennsylvania) CIS 192 December 8, 2016 21 / 21.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    21 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us