【100个python算法超详细讲解】@谷哥技术

1.问题描述
一只兔子躲进了10个环形分布的洞中的某一个。狼在第一个洞中
没有找到兔子,就隔一个洞,到第三个洞中去找;如果没有找到,就
隔两个洞,到第六个洞中去找;以后每次多隔一个洞去找兔子……这
样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?
2.数组
在Python语言中,其数据类型列表就是数组。它是以方括号“[]”包
围的数据类型,各个数据之间使用逗号“,”隔开。其内部元素可以是
Python语言中的任何数据类型,也可以是另一个列表。我们可以通过
各个元素的序号(下标)来访问列表中的元素,也可以对列表进行排
序、添加、删除、相加、乘法及分片等操作。
关于列表的相关方法我们在第2章中就介绍过了,这里不再重复。
3.问题分析
首先定义一个数组a[11],其数组元素为a[1],a[2],a[3]…a[10],
这10个数组元素分别表示10个洞,初值均置为1。
接着使用“穷举法”来找兔子,通过循环结构进行穷举,设最大寻
找次数为1000次。由于洞只有10个,因此第n次查找对应第n%10个
洞,如果在第n%10个洞中没有找到兔子,则将数组元素a[n%10]置0。
当循环结束后,再检查a数组各元素(各个洞)的值,若其值仍为
1,则兔子可能藏身于该洞中。
4.算法设计
程序的流程图如图8.9所示。

5.完整的程序
根据上面的分析,编写程序如下:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @author : liuhefei
# @desc: 狼追兔子
if __name__=="__main__":
n = 0
x = 0
a = [1]*11 # 定义一个长度为11的数组,初始值均为1
for i in range(0, 1000): # 穷举搜索
n += (i+1)
x = n % 10
a[x] = 0 # 没有找到,设置为0
for i in range(0, 10): # 输出结果
if a[i]:
print("可能在第%d个洞中" %i)

6.运行结果
在PyCharm下运行程序,结果如图8.10所示。

100个python算法超详细讲解:狼追兔子相关推荐

  1. 100个python算法超详细讲解:搬山游戏

    [100个python算法超详细讲解]@谷歌学术 1.问题描述 设有n座山,计算机与人作为比赛的双方,轮流搬山.规定每次搬 山数不能超过k座,谁搬最后一座谁输.游戏开始时,计算机请人输入 山的总数n和 ...

  2. 100个python算法超详细讲解:平分7筐鱼

    [100个python算法超详细讲解]@谷哥技术 1.问题描述 2.乙.丙三位渔夫出海打鱼,他们随船带了21只箩筐.当晚返航时, 他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐是空的,由于他们 ...

  3. 100个python算法超详细讲解:邮票组合

    [100个python算法超详细讲解]@谷哥技术 1.问题描述 我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小 面值邮票中的一张或几张的组合,可以满足不同邮件的不同邮资.现 在,邮局有4种不 ...

  4. 100个python算法超详细讲解:递归解决年龄问题

    [100个python算法超详细讲解]@谷哥技术 1.问题描述 有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁.问 第4个人多少岁,他说比第3个人大2岁.问第3人多少岁,他说比第2个 人大2 ...

  5. 100个python算法超详细讲解:谁是窃贼

    [100个python算法超详细讲解]@谷哥技术 1.问题描述 警察审问4名窃贼嫌疑犯.现在已知,这4人当中仅有一名是窃 贼,还知道这4个人中的每个人要么是诚实的,要么总是说谎. 下面是这4个人给警察 ...

  6. 100个python算法超详细讲解:抢30游戏

    [100个python算法超详细讲解]@谷歌学术 1.问题描述 由两个人玩"抢30"游戏,游戏规则是:第一个人先说"1"或"1,2",第 二 ...

  7. 100个python算法超详细讲解:卡布列克常数

    [100个python算法超详细讲解]@谷哥技术 1.问题描述 对于任意一个4位数n,进行如下的运算: 1)将组成该4位数的4个数字由大到小排列,形成由这4个数字构 成的最大的4位数. 2)将组成该4 ...

  8. 100个python算法超详细讲解:孪生素数

    [100个python算法超详细讲解@谷哥技术] 1.问题描述 本节要研究孪生素数的问题,先来看看什么是孪生素数. 所谓孪生素数指的是间隔为2的两个相邻素数,因为它们之间的距离已经 近得不能再近了,如 ...

  9. 100个python算法超详细讲解:猴子吃桃

    [100个python算法超详细讲解]@谷哥技术 1.问题描述 一个猴子摘了一些桃子,它第一天吃掉了其中的一半然后再多吃了 一个,第二天照此方法又吃掉了剩下桃子的一半加一个,以后每天如 此,直到第十天 ...

最新文章

  1. 当前元素_90行代码,15个元素实现无限滚动
  2. php导出mongo日志,导出mongo库到本地
  3. times(NULL) Segmentation fault
  4. 申明   csdn的博客wjszf 也是本人的
  5. “苏木”边上的小牛犊
  6. mysql删除记录后id不连续_Mysql数据库中使用DELETE语句时,一般删除一条记录后ID会不连续,才能让序号继续按顺序排列?...
  7. mongo 主从数据不同步
  8. Ubuntu16.04 安装Caffe教程
  9. KVM虚拟化技术原理简介
  10. 怎样清理计算机c盘东西,电脑c盘满了怎么清理
  11. 整车控制器(VCU)策略及开发流程
  12. 用word宏命令批量修改图片尺寸大小(亲测好用!)
  13. html实现爱情告白(附源码)
  14. 心电电路算法滤波_心电仪滤波
  15. appStore上传苹果应用程序软件发布流程
  16. 微信开发者工具中使用vant库
  17. MySql 配置 方法
  18. Vue 2.爷爷点击事件触发孙子的方法
  19. 屏蔽宽带运营商的弹窗广告
  20. 甘肃省甘南藏族自治州谷歌卫星地图下载

热门文章

  1. 最新小白设置sublime默认浏览器以及快捷键
  2. 我常用的效率小工具,强烈推荐
  3. 最新恋爱聊妹术V2小程序源码4.1.0多开版
  4. OPPO、vivo依靠线下渠道稳居前二,小米赶超难度加大
  5. 物体测试(双肩包、电梯、椅子)
  6. 河北小学计算机教案第二册,河北人民版小学信息技术教案第二册全册.doc
  7. 老九java线上_java应用监测(4)-线上问题排查套路
  8. mysql 体重 类型 身高_MySQL常用数据类型
  9. python引入模块的五种方式与内置模块
  10. 划重点!| 必须了解的工业相机入门级知识