from random import choice
from matplotlib import pyplot, animation, rc
class random_walk_sim(object):
def __init__(self, x, y):
self.x = int(x)
self.y = int(y)
self.X = [x]
self.Y = [y]
self.init = (self.x, self.y)
def random_move(self):
self.x += choice([-1, 0, 1])
self.y += choice([-1, 0, 1])
self.X += [self.x]
self.Y += [self.y]
def show_history(self):
pyplot.plot(self.X, self.Y)
pyplot.show()
def origin_count(self):
return list(zip(self.X, self.Y)).count(self.init) - 1
if __name__ == '__main__':
a = random_walk_sim(1, 1)
[a.random_move() for i in range(1000)]
a.show_history()
num_time = 100
p1 = random_walk_sim(0, 0)
[p1.random_move() for i in range(num_time)]
fig = pyplot.figure()
list_plot = [pyplot.plot(p1.X[:i], p1.Y[:i]) for i in range(num_time)]
anim = animation.ArtistAnimation(fig, list_plot)
pyplot.show()
ZnJvbSByYW5kb20gaW1wb3J0IGNob2ljZQpmcm9tIG1hdHBsb3RsaWIgaW1wb3J0IHB5cGxvdCwgYW5pbWF0aW9uLCByYwoKY2xhc3MgcmFuZG9tX3dhbGtfc2ltKG9iamVjdCk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgeCwgeSk6CiAgICAgICAgc2VsZi54ID0gaW50KHgpCiAgICAgICAgc2VsZi55ID0gaW50KHkpCiAgICAgICAgc2VsZi5YID0gW3hdCiAgICAgICAgc2VsZi5ZID0gW3ldCiAgICAgICAgc2VsZi5pbml0ID0gKHNlbGYueCwgc2VsZi55KQogICAgZGVmIHJhbmRvbV9tb3ZlKHNlbGYpOgogICAgICAgIHNlbGYueCArPSBjaG9pY2UoWy0xLCAwLCAxXSkKICAgICAgICBzZWxmLnkgKz0gY2hvaWNlKFstMSwgMCwgMV0pCiAgICAgICAgc2VsZi5YICs9IFtzZWxmLnhdCiAgICAgICAgc2VsZi5ZICs9IFtzZWxmLnldCiAgICBkZWYgc2hvd19oaXN0b3J5KHNlbGYpOgogICAgICAgIHB5cGxvdC5wbG90KHNlbGYuWCwgc2VsZi5ZKQogICAgICAgIHB5cGxvdC5zaG93KCkKICAgIGRlZiBvcmlnaW5fY291bnQoc2VsZik6CiAgICAgICAgcmV0dXJuIGxpc3QoemlwKHNlbGYuWCwgc2VsZi5ZKSkuY291bnQoc2VsZi5pbml0KSAtIDEKCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICBhID0gcmFuZG9tX3dhbGtfc2ltKDEsIDEpCiAgICBbYS5yYW5kb21fbW92ZSgpIGZvciBpIGluIHJhbmdlKDEwMDApXQogICAgYS5zaG93X2hpc3RvcnkoKQogICAgbnVtX3RpbWUgPSAxMDAKICAgIHAxID0gcmFuZG9tX3dhbGtfc2ltKDAsIDApCiAgICBbcDEucmFuZG9tX21vdmUoKSBmb3IgaSBpbiByYW5nZShudW1fdGltZSldCiAgICBmaWcgPSBweXBsb3QuZmlndXJlKCkKICAgIGxpc3RfcGxvdCA9IFtweXBsb3QucGxvdChwMS5YWzppXSwgcDEuWVs6aV0pIGZvciBpIGluIHJhbmdlKG51bV90aW1lKV0KICAgIGFuaW0gPSBhbmltYXRpb24uQXJ0aXN0QW5pbWF0aW9uKGZpZywgbGlzdF9wbG90KQogICAgcHlwbG90LnNob3coKQo=