酒鬼漫步
在一条东西走向的大马路上,酒鬼所处的初始位置假定为原点,酒鬼随机向东(正向)或向西(反向)走一步。请使用所学的知识解决以下问题:
题目非常的简单,看到题目中有一个要求是计算任意一次走完后的距离原点的步数,就是累积求和函数,可以使用numpy
库的相关方法实现,所以我们使用numpy
库函数。
考虑到数据量的问题,这里以 100
步进行演示。
import numpy as np
# choice函数接收一个迭代对象和大小,这里选择100次
lt = np.random.choice([1, -1], 100)
print('-----------------1.酒鬼的走步-------------------')
print(lt)
cum_sum = lt.cumsum()
print('--------2.酒鬼任意一次走完后距离原点的步数----------')
print(cum_sum)
su = lt.sum()
print('------------3.酒鬼最后距离原点的步数--------------')
print(su)
print('-------------4.酒鬼正向走的最远步数---------------')
# 返回的是下标,这里考虑到下标是从零开始的,所以加一
print(cum_sum.argmax() + 1)
print('-------------5.酒鬼反向走的最远步数---------------')
print(cum_sum.argmin() + 1)
count = 0
for i in cum_sum:
count += 1
if i == 5 or i == -5:
break
print('--------6.第一次距离原点5步的时候走的步数-----------')
print(count)
执行结果: