前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python:酒鬼漫步

Python:酒鬼漫步

作者头像
wsuo
发布2020-07-30 18:53:19
1.1K0
发布2020-07-30 18:53:19
举报
文章被收录于专栏:技术进阶之路技术进阶之路

问题描述

酒鬼漫步

在一条东西走向的大马路上,酒鬼所处的初始位置假定为原点,酒鬼随机向东(正向)或向西(反向)走一步。请使用所学的知识解决以下问题:

  • 1)酒鬼随机走了1000步,打印输出酒鬼的走步。(可假定-1为向西走,+1为向东走,如:-1,-1,1,-1,1,…-1)
  • 2)打印输出,酒鬼任意一次走完后距离原点的步数。(如:-1,-2,-1,-2,-1,0,1,2,1…46)
  • 3)打印输出,酒鬼最后距离原点的步数。
  • 4)打印输出,酒鬼正向走的最远步数。
  • 5)打印输出,酒鬼反向走的最远步数。
  • 6)计算酒鬼第一次距离原点5步的时候(可以是正向5步,也可以是反向5步)。此时酒鬼共走了多少步?

分析

题目非常的简单,看到题目中有一个要求是计算任意一次走完后的距离原点的步数,就是累积求和函数,可以使用numpy库的相关方法实现,所以我们使用numpy库函数。

代码实现

考虑到数据量的问题,这里以 100 步进行演示。

代码语言:javascript
复制
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)

执行结果:

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 分析
  • 代码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档