10. iteration: the while-loop - cornell university...2016/03/03 · 10. iteration: the while-loop...
TRANSCRIPT
![Page 1: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/1.jpg)
10. Iteration: The while-Loop
Topics:
Open-Ended repetition
the while statement
Random Walk Simulation
![Page 2: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/2.jpg)
Open-Ended Iteration
So far, we have only addressed iterative
problems in which we know (in advance) the
required number of repetitions.
Not all iteration problems are like that.
Some iteration problems are open-ended.
Stir for 5 minutes vs Stir until fluffy.
![Page 3: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/3.jpg)
Examples
Keep tossing a coin until the number of heads
and the number of tails differs by 10.
Compute the square root of 2….
L = 2; W = 1
Repeat this until |L-W| <= .000001:
L = (L + W)/2
W = x/L
In both cases, we do not know the number of iterations that will be required
![Page 4: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/4.jpg)
The Random Walk Idea
We have a “runway” made up of 1x1 tiles. There are 2L+1 tiles. (L = 5 in the above.) We call L the “length of the runway. The center tile is located at x = 0.
-5 -4 -3 -2 -1 0 1 2 3 4 5
![Page 5: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/5.jpg)
The Random Walk Idea
Starting at the center tile, a robot hops from tile to tile according to a coin flip.
Heads: Hop right one tile.
Tails: Hop left one tile.
The simulation over when robot reaches either end (a.k.a. the boundary) of the runway.
-5 -4 -3 -2 -1 0 1 2 3 4 5
We do not know in advance how many iterations we’ll need,
![Page 6: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/6.jpg)
The While Loop
We introduce an alternative to the for-loop
called the while-loop.
The while loop is more flexible and is essential
for ``open ended’’ iteration.
![Page 7: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/7.jpg)
How Does a While-Loop Work?
A simple warm-up example: Sum the first 5 whole numbers and display the summation process.
![Page 8: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/8.jpg)
Two Solutions
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
s = 0
for k in range(1,6):
s = s + k
print k,s
![Page 9: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/9.jpg)
The While-Loop Solution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
1 1
2 3
3 6
4 10
5 15
Observation: k is used for counting, s is used for the running sum, and the while is used to control the repetition of the indented code.
![Page 10: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/10.jpg)
The Solution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
1 1
2 3
3 6
4 10
5 15
We call this the “loop body”
![Page 11: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/11.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
0 k ->
0 s ->
At the start, k and s are initialized
![Page 12: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/12.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
0 k ->
0 s ->
Is the boolean condition true?
![Page 13: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/13.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
0 k ->
0 s ->
Yes, so execute the loop body
![Page 14: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/14.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
1 k ->
1 s ->
1 1
![Page 15: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/15.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
1 k ->
1 s ->
Is the boolean condition true?
1 1
![Page 16: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/16.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
1 k ->
1 s ->
Yes, so execute the loop body
1 1
![Page 17: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/17.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
2 k ->
3 s ->
1 1
2 3
![Page 18: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/18.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
2 k ->
3 s ->
Is the boolean condition true?
1 1
2 3
![Page 19: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/19.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
2 k ->
3 s ->
Yes, so execute the loop body
1 1
2 3
![Page 20: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/20.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
3 k ->
6 s ->
1 1
2 3
3 6
![Page 21: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/21.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
3 k ->
6 s ->
Is the boolean condition true?
1 1
2 3
3 6
![Page 22: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/22.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
3 k ->
6 s ->
Yes, so execute the loop body
1 1
2 3
3 6
![Page 23: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/23.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
4 k ->
10 s ->
1 1
2 3
3 6
4 10
![Page 24: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/24.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
4 k ->
10 s ->
Is the boolean condition true?
1 1
2 3
3 6
4 10
![Page 25: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/25.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
4 k ->
10 s ->
Yes, so execute the loop body
1 1
2 3
3 6
4 10
![Page 26: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/26.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
5 k ->
15 s ->
1 1
2 3
3 6
4 10
5 15
![Page 27: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/27.jpg)
Trace the Execution
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
5 k ->
15 s ->
1 1
2 3
3 6
4 10
5 15
Is the boolean condition true? NO! The loop is over.
![Page 28: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/28.jpg)
The While-Loop Mechanism
while A Boolean Expression
The Loop Body
:
The Boolean expression is checked. If it is true, then the loop body is executed. The process is repeated until the Boolean expression is false. At that point the iteration terminates.
![Page 29: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/29.jpg)
The Broader Context
while A Boolean Expression
The Loop Body
:
Code that comes before the loop
Code that comes after the loop
Every variable involved in the Boolean expression must be initialized.
![Page 30: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/30.jpg)
The Broader Context
while A Boolean Expression
The Loop Body
:
Code that comes before the loop
Code that comes after the loop
After the loop terminates the next statement after the loop is executed.
![Page 31: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/31.jpg)
The Broader Context
while A Boolean Expression
The Loop Body
:
Code that comes before the loop
Code that comes after the loop
Indentation defines the loop body
![Page 32: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/32.jpg)
Back to Our Example
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
1 1
2 3
3 6
4 10
5 15
Let’s move the print statement outside the loop body
![Page 33: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/33.jpg)
Back to Our Example
k = 0
s = 0
while k < 5:
k = k + 1
s = s + k
print k,s
5 15
Only the final value of k and s are reported.
![Page 34: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/34.jpg)
Random Walks
A very important type of random simulation. A good example to showcase the while loop.
![Page 35: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/35.jpg)
The Random Walk Idea
We have a “runway” made up of 1x1 tiles. There are 2L+1 tiles. (L = 5 in the above.) We call L the “length of the runway. The center tile is located at x = 0.
-5 -4 -3 -2 -1 0 1 2 3 4 5
![Page 36: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/36.jpg)
The Random Walk Idea
Starting at the center tile, a robot hops from tile to tile according to a coin flip.
Heads: Hop right one tile.
Tails: Hop left one tile.
The simulation over when robot reaches either end (a.k.a. the boundary) of the runway.
-5 -4 -3 -2 -1 0 1 2 3 4 5
![Page 37: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/37.jpg)
The Random Walk Idea
-5 -4 -3 -2 -1 0 1 2 3 4 5
Question: Given the runway length L, what is the average number of hops required for the robot to reach the boundary?
![Page 38: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/38.jpg)
Implement ShowRandomWalk.py from random import randint as randi
def RandomWalk(L):
# Returns the number of hops for
# a single random walk.
def AveRandomWalk(L,n):
# Simulate n length-L random walks and
# returns average number of required hops
if __name__ == '__main__':
# Display the value of AveRandomWalk
# for various values of L
![Page 39: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/39.jpg)
def RandomWalk(L):
hops = 0; x = 0
while abs(x) < L:
r = randi(0,1)
if r == 0:
x = x + 1
else:
x = x - 1
hops += 1
return hops
The Function RandomWalk(L)
Initializations. The robot starts at x = 0.
![Page 40: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/40.jpg)
def RandomWalk(L):
hops = 0; x = 0
while abs(x) < L:
r = randi(0,1)
if r == 0:
x = x + 1
else:
x = x - 1
hops += 1
return hops
The Function RandomWalk(L)
If the condition is True, the robot has not yet reached the boundary and we keep iterating..
![Page 41: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/41.jpg)
def RandomWalk(L):
hops = 0; x = 0
while abs(x) < L:
r = randi(0,1)
if r == 0:
x = x + 1
else:
x = x - 1
hops += 1
return hops
The Function RandomWalk(L)
We simulate the coin toss by picking 0 or 1 at random.
![Page 42: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/42.jpg)
def RandomWalk(L):
hops = 0; x = 0
while abs(x) < L:
r = randi(0,1)
if r == 0:
x = x + 1
else:
x = x - 1
hops += 1
return hops
The Function RandomWalk(L)
Hop right
Hop left
![Page 43: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/43.jpg)
The While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
To more fully understand how this works, let’s look at the execution of this while loop:
![Page 44: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/44.jpg)
Understanding the While-Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
![Page 45: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/45.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
Assume r = 0 Coin = Heads Hop Right
![Page 46: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/46.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
The value of X is increased from 0 to 1.
![Page 47: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/47.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
abs(x) < 5 is true. Robot not at boundary. Loop continues.
![Page 48: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/48.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
Assume r = 1 Coin = Tails Hop Left
![Page 49: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/49.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
The value of X is decreased from 1 to 0.
![Page 50: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/50.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
abs(x) < 5 is true. Robot not at boundary. Loop continues
![Page 51: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/51.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
Assume r = 0 Coin = Heads Hop Right
![Page 52: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/52.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
The value of X is increased from 0 to 1.
![Page 53: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/53.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
abs(x) < 5 is true. Robot not at boundary. Loop continues
![Page 54: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/54.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
Assume r = 0 Coin = Heads Hop Right
![Page 55: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/55.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
The value of X is increased from 1 to 2.
![Page 56: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/56.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
abs(x) < 5 is true. Robot not at boundary. Loop continues
![Page 57: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/57.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
Assume r = 0 Coin = Heads Hop Right
![Page 58: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/58.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
The value of X is increased from 2 to 3.
![Page 59: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/59.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
abs(x) < 5 is true. Robot not at boundary. Loop continues
![Page 60: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/60.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
Assume r = 1 Coin = Tails Hop Left
![Page 61: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/61.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
The value of X is decreased from 3 to 2.
![Page 62: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/62.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
abs(x) < 5 is true. Robot not at boundary. Loop continues
![Page 63: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/63.jpg)
Understandingthe While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
Assume r = 1 Coin = Heads Hop Right
![Page 64: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/64.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
The value of X is increased from 2 to 3.
![Page 65: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/65.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
abs(x) < 5 is true. Robot not at boundary. Loop continues
![Page 66: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/66.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
Assume r = 0 Coin = Heads Hop Right
![Page 67: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/67.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
The value of X is increased from 3 to 4.
![Page 68: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/68.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
abs(x) < 5 is true. Robot not at boundary. Loop continues
![Page 69: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/69.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
Assume r = 0 Coin = Heads Hop Right
![Page 70: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/70.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
The value of X is increased from 4 to 5.
![Page 71: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/71.jpg)
Understanding the While Loop
x = 0
while abs(x) < 5:
r = randi(0,1)
if r == 0:
x = x+1
else:
x = x-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
abs(x) < 5 is False. Robot is on the boundary. Loop TERMINATES
![Page 72: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/72.jpg)
The Application Script
if __name__ == '__main__':
n = 1000 # Number of trials
for L in range(5,45,5):
print L, AveRandomWalk(L,n)
Check out the cases L = 5,10,15,,20,25,30,35,40 :
![Page 73: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/73.jpg)
The Function AveRandomWalk(L,n)
def AveRandomWalk(L,n):
s = 0
for k in range(0,n):
RequiredHops = RandomWalk(L)
s += RequiredHops
ave = float(s)/float(n)
return ave
![Page 74: 10. Iteration: The while-Loop - Cornell University...2016/03/03 · 10. Iteration: The while-Loop Topics: Open-Ended repetition the while statement Random Walk Simulation Open-Ended](https://reader033.vdocuments.site/reader033/viewer/2022060316/5f0bf9327e708231d4332258/html5/thumbnails/74.jpg)
L Ave
------------
5 24
10 93
15 219
20 399
25 649
30 917
35 1259
40 1594
Averages based on 1000 trials.
Sample Output
Looks like doubling L increases the average by a factor of 4.
Insight through Computing!