0% found this document useful (0 votes)
71 views

CSE101-Lab 6: 1 Random Simulation Basics

This document provides instructions for a lab assignment on random simulations and random walks in Python. It includes: 1) A Python script that performs 4 random simulations and outputs results to calculate probabilities. Students are asked to fill in a table with the expected output values. 2) Instructions to run a Python module that randomly places shapes in a window, and modifications needed to ensure shapes don't exceed window edges. 3) Code for a 2D random walk simulation within a square, and tasks to add code to count steps and print final coordinates.

Uploaded by

Roshan Ajith
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views

CSE101-Lab 6: 1 Random Simulation Basics

This document provides instructions for a lab assignment on random simulations and random walks in Python. It includes: 1) A Python script that performs 4 random simulations and outputs results to calculate probabilities. Students are asked to fill in a table with the expected output values. 2) Instructions to run a Python module that randomly places shapes in a window, and modifications needed to ensure shapes don't exceed window edges. 3) Code for a 2D random walk simulation within a square, and tasks to add code to count steps and print final coordinates.

Uploaded by

Roshan Ajith
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

CSE101-Lab 6

Name:

Roll No:

Getting credit
Complete all required blank boxes and lines on this handout. When you are done, show your written answers
to one of the TAs. The TA may ask you a few questions to make sure you understand the material.
Submission: The docx file and edited version of PaintShapes.py, zipped into a file

1 Random Simulation Basics


The following script produces 4 lines of output:
# ShowRand.py
from random import randint as randi
from random import uniform as randu
N = 100000
count=0
for k in range(N):
x = randu(0,100)
if 10<=x<=20 or 45<=x<=70:
count +=1
print (float(count)/float(N))
count=0
for k in range(N):
x = randu(0,100)
if 10<=x<=45 and 20<=x<=60:
count +=1
print (float(count)/float(N))
count=0
for
k in range(N):
x = randi(1,20)
if x%3==1 or x%5==0:
count +=1
print (float(count)/float(N))
count=0
for
k in range(N):
x = randi(1,20)
if 13<=x<17:
count +=1
print (float(count)/float(N))

Fill in the following table:


I Think the

Python

Expression

Notes
Output Is

First Output Line

Second Output Line

Third Output Line

Fourth Output Line

Says

2 PaintShapes
Run the module PaintShapes.py and observe that it randomly places 500 color disks and squares in the
figure window:

Look at the computation of rangeR and sideRange values inside the for loop.
2.1 Show how to modify these assignment statements so that no painted shape is cut by the edge of the
figure window?
As it stands, the color is Magenta with probability 1/3, Cyan with probability 1/3, and Blue with probability 1/3.
2.2 How could you change
rc = randi(1,3)
if rc%3==0:
c = MAGENTA
elif rc%3==1:
c = CYAN
else:
c = BLUE
so that we draw a Magenta disk with probability 1/3, a Cyan disk with probability 1/4, and a Blue disk with
probability 5/12? Hint: randi(1,12).
[Make the required changes in the PaintShapes.py]

3 Random Walk
Here is code that simulates a random walk inside a square with corners (L; L), (L; -L), ( -L; L), and ( -L; -L):
x = 0
y = 0
T =
for i in range 2000 :
if abs(x) < L and abs(y) < L:
# The robot has not reached the edge
r = randi(1,4)
if r==1:
# Hop North
y = y + 1; T = T + 'NN'
elif r==2:
# Hop East
x = x + 1; T = T + 'EE'
elif r==3:
# Hop South
y = y-1; T = T + 'SS'
else:
# Hop West
x = x-1; T = T + 'WW'
else:
break
# Code Here
The robot starts at (0,0) and hops its way towards the edge of the square. A hop is either two units North, two
units East, two units South, or two units West. The string T records the itinerary. An example T would be
'NNEENNSSWWSSWWEE'.
3.1 Assume that L is a positive integer and that T has been produced by the for loop. Add code after the
Code Here comment so that the number of hops that the robot took is assigned to the variable nSteps.
Answer:
3.2 Add code after the Code Here comment so that the x,y coordinates of the robot's final position are printed
out. (Hint. Think about T.count('N'), T.count('E'), T.count('S'), and T.count('W').
Answer:

You might also like