Странный результат случайной прогулки в питоне 3?
Я только начинаю изучать python и у меня возникает проблема с печатью нового местоположения случайного блуждания в 3-х измерениях. Ошибка не появляется, но очевидно, что выводимые данные (x, y, z) неоправданны! При пошаговом моделировании случайного блуждания я предполагаю, что в каждый раз следует изменять только одно значение в (x, y, z). Но, похоже, не в выходной. Я пытаюсь отладить его, но все еще не могу понять, в чем реальная проблема.
Выходные заголовки:
(0,-1,1)
(-1,0,1)
(-2,0,1)
(-2,1,2)
(-2,2,2)
(-2,2,3)
(-1,2,3)
(0,1,3)
Моя мотивация:
Целью этого кода является моделирование N шагов случайного блуждания в 3 измерениях. На каждом шаге выбирается случайное направление (север, юг, восток, запад, вверх, вниз), и в этом направлении делается шаг размером 1. Новое местоположение тогда напечатано. Начальным местоположением является источник (0, 0, 0).
Мой код:
import pdb
import random # this helps us generate random numbers
N = 30 # number of steps
n = random.random() # generate a random number
x = 0
y = 0
z = 0
count = 0
while count <= N:
if n < 1/6:
x = x + 1 # move east
n = random.random() # generate a new random number
if n >= 1/6 and n < 2/6:
y = y + 1 # move north
n = random.random() # generate a new random number
if n >= 2/6 and n < 3/6:
z = z + 1 # move up
n = random.random() # generate a new random number
if n >= 3/6 and n < 4/6:
x = x - 1 # move west
n = random.random() # generate a new random number
if n >= 4/6 and n < 5/6:
y = y - 1 # move south
n = random.random() # generate a new random number
if n >= 5/6:
z = z - 1 # move down
n = random.random() # generate a new random number
print("(%d,%d,%d)" % (x,y,z))
count = count + 1
print("squared distance = %d" % (x*x + y*y + z*z))
Среда:
Python 3.5 в ноутбуке Jupyter, Windows 10, Dell XPS 13