酒鬼漫步详解(python)

题目概述

在一个二维平面上,有一个酒鬼,它最初的位置视为原点,向前走为正数,向后走为负数,一共走了2000步,一步为0.5米
求:

  1. 酒鬼与原点的距离
  2. 酒鬼在走的过程中,与原点的最远距离
    因为酒鬼走的方向是随机的,所以我们使用random的随即模块来生成2000个“掷硬币值”,就可以得出答案了

代码实现

import numpy as np
step = 2000
draws = np.random.randint(0,2,size=step)
direction_steps=np.where(draws>0,1,-1)
distance=direction_steps.cumsum()
print(distance)
print(distance.max())#酒鬼向前最远走到哪
print(distance.min())#酒鬼向后最远走到哪
print(direction_steps.sum()*0.5)#酒鬼走完两千步的位置

代码内容解释

  1. 在第三行中使用了randint函数创建数组,random.randint(a, b, n)表示随机生成n个大于等于a,小于b的整数,所以这里就是生成了step个大于等于0,小于2的整数,也就是说这个数组里的元素只有0和1。
  2. 在第四行,我们使用where进行判断,当draws数组中的元素大于0时,那么direction_steps就为1,否者就为-1,这样我们就得到了一个新的数组
  3. 在第五行这里我们将上面的得到的新数组进行累计和运算,就能得出酒鬼向前走最远走到哪,向后走最远走到哪,还能得出走完2000步后,酒鬼的位置
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只会偷懒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值