【每天几分钟,从零入门python编程的世界!】
这节我们在2D平面内实现随机游走。我们先把原理搞清楚,用代码实现这个原理。
原理分析:
我们想像在2D平面内有一个x轴和y轴组成的坐标系,有一个人他是个醉汉,他以(0,0)为原点,随机游走,以x和y表示游走后的坐标值,刚开始x=0,y=0。他每走一步之前,都需要先做一次选择,选择往东南西北哪一个方向去走,这个选择我们需要先引入一个random库,这是一个可以用来实现随机数、随机选择的库,用这个库来实现随机方向的选择。东西南北我们分别用E、W、S、N这四个字母表示。选择的结果我们用step这个变量保存。做出选择之后他就会按照选择的方向走一步,根据地理上北下南左西右东的原则,往东走一步就是x+1,往西走一步就是x-1,往南走一步就是y-1,往北走一步就是y+1。假如说这个醉汉连续走n步然后停一下,我们把这个过程看做一次随机游走,用一个函数来表示为--random_walk(n)。
这个表示随机游走的函数的代码如下:
说明:choice()函数是random库自带的函数,它的参数是一个列表,这个函数的作用是从列表中进行选择元素。
假设现在我们模拟这个醉汉完成10次随机游走,然后计算他最终的位置到原点的距离。应该怎么做呢?
我们可以用勾股定理,因为原点是(0,0),所以最终的位置到原点的距离就是x的平方加y的平方开根号。
在这里我们先不开根号,暂时就用x的平方加y的平方的结果,可以大概估算随机游走后的最终位置到原点的距离。
现在我们模拟这样一个过程:就是假设这个醉汉连续走50步,算作完成一次随机游走,我们让他做30次随机游走,每完成一次游走看看他到原点的距离是多少,如果大于100,就输出'It's too far away from home,I'm taking a taxi',如果小于100,就输出'I'm walking home. '
代码如下:
运行结果:
以上就是在Python中用代码实现醉汉随机游走的过程。关于过程和原理,代码中有注释,很容易理解。
联系客服