Code: Alles auswählen
import pylab
from random import random
def random_steps(n):
#"""simuliert n Schritte. Zufall entscheidet bei jedem Schritt ob er
#Startpunkt hin oder vom Startpunkt weg gemacht wird.
#Gibt den Abstand vom Startpunkt zurueck."""
pos = 0
for k in xrange(n):
pos += 1 if random() > 0.5 else -1
return pos
def avg_distance(steps_to_take, repeats):
""""Ruft random_steps repeats-mal auf, und laesst es jeweils
steps_to_take-Schritte simulieren.
Funktion gibt dann den Mittelwert der Antworten zurueck"""
location_sum = 0
for i in xrange(repeats):
location_sum += random_steps(steps_to_take)
avg_location = location_sum / (repeats * 1.)
return avg_location
if __name__=='__main__':
repeats = 20
steps_list = range (500)
distance_list = []
for steps in steps_list:
distance_list.append(avg_distance(steps, repeats))
pylab.plot(steps_list,distance_list)
pylab.xlabel('Steps taken')
pylab.ylabel('Distance from the midpoint')
pylab.show()
Code: Alles auswählen
raceback (most recent call last):
File "C:/Python25/Aufgabenzettel_9/1D_Random.py", line 34, in <module>
distance_list.append(avg_distance(steps, repeats))
File "C:/Python25/Aufgabenzettel_9/1D_Random.py", line 25, in avg_distance
location_sum += random_steps(steps_to_take)
TypeError: unsupported operand type(s) for +=: 'int' and 'NoneType'