Thu Oct 17
We didn't get past the project examples,
which I have uploaded.
---
Randy pointed out this page with examples of animation using Zelle's Graphics :
old business
Last time we had started problem 4 - largest palindrome - from projecteuler.net .
- problem 4 - largest palindrome made from the product of two 3-digit numbers
One more ?
new business
Chapter 9 : "simulation and design"
Discusses "top-down", "bottom-up", and "spiral"
(which is a bit of both) program design techniques.
The text does this with a racquetball simulation.
I'd like to do something similar as a class exercise, but with a problem that I like a bit better: craps.
As the book describes, we'll use a random number function to implement the dice :
def d6():
"""Return a random integer from 1 to 6 inclusive."""
from random import randrange
return randrange(1,7)
(Before going on, test this manually.)
The program I have in mind looks like this when it runs :
$ python craps.py
--- Estimated odds of winning at craps ---
How many games would you like to simulate? 100
Simulating 100 games ...
done.
Number of simulated wins: 38
Estimated odds of winning: 0.381
--- Estimated error ---
How many times would you like to repeat that series of 100 games? 10
Simulating 10 sets of 100 games ...
done.
Lowest estimated odds : 0.363
Highest estimated odds: 0.387
Error range = (high-low) = 0.024
And what I'd like us to investigate are several things,
besides just the programming itself:
- How do we think about designing a program to do this?
- In particular, where should we start?
- How confident are we that it's working correctly?
- 1st roll :
- 2, 3, 12 loses right away
- 7, 11 wins right away
- anything else sets the "point" which must then be rolled
- following rolls :
- 7 loses
- "point" wins
- anything else means roll again
(We won't worry about how the betting works.)
We'll see how far we get with working through this together in class.
No class next Tuesday ... so I'll see you in a week. :)