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 ( )
[ pyplot.scatter ( m.X , m.Y , s = 0.5 , color = "blue" , alpha = 0.3 ) for m in [ [ j.random_move ( ) for k in range ( 1000 ) ] and j for j in [ random_walk_sim( 0 , 0 ) for i in range ( 1000 ) ] ] ]
pyplot.show ( )
ZnJvbSByYW5kb20gaW1wb3J0IGNob2ljZQpmcm9tIG1hdHBsb3RsaWIgaW1wb3J0IHB5cGxvdCwgYW5pbWF0aW9uLCByYwoKY2xhc3MgcmFuZG9tX3dhbGtfc2ltKG9iamVjdCk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgeCwgeSk6CiAgICAgICAgc2VsZi54ID0gaW50KHgpCiAgICAgICAgc2VsZi55ID0gaW50KHkpCiAgICAgICAgc2VsZi5YID0gW3hdCiAgICAgICAgc2VsZi5ZID0gW3ldCiAgICAgICAgc2VsZi5pbml0ID0gKHNlbGYueCwgc2VsZi55KQogICAgZGVmIHJhbmRvbV9tb3ZlKHNlbGYpOgogICAgICAgIHNlbGYueCArPSBjaG9pY2UoWy0xLCAwLCAxXSkKICAgICAgICBzZWxmLnkgKz0gY2hvaWNlKFstMSwgMCwgMV0pCiAgICAgICAgc2VsZi5YICs9IFtzZWxmLnhdCiAgICAgICAgc2VsZi5ZICs9IFtzZWxmLnldCiAgICBkZWYgc2hvd19oaXN0b3J5KHNlbGYpOgogICAgICAgIHB5cGxvdC5wbG90KHNlbGYuWCwgc2VsZi5ZKQogICAgICAgIHB5cGxvdC5zaG93KCkKICAgIGRlZiBvcmlnaW5fY291bnQoc2VsZik6CiAgICAgICAgcmV0dXJuIGxpc3QoemlwKHNlbGYuWCwgc2VsZi5ZKSkuY291bnQoc2VsZi5pbml0KSAtIDEKCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICBhID0gcmFuZG9tX3dhbGtfc2ltKDEsIDEpCiAgICBbYS5yYW5kb21fbW92ZSgpIGZvciBpIGluIHJhbmdlKDEwMDApXQogICAgYS5zaG93X2hpc3RvcnkoKQogICAgW3B5cGxvdC5zY2F0dGVyKG0uWCwgbS5ZLCBzID0gMC41LCBjb2xvciA9ICJibHVlIiwgYWxwaGEgPSAwLjMpIGZvciBtIGluIFtbai5yYW5kb21fbW92ZSgpIGZvciBrIGluIHJhbmdlKDEwMDApXSBhbmQgaiBmb3IgaiBpbiBbcmFuZG9tX3dhbGtfc2ltKDAsIDApIGZvciBpIGluIHJhbmdlKDEwMDApXV1dCiAgICBweXBsb3Quc2hvdygpCg==