Python解“约瑟夫生者死者小游戏”

来源 :电脑报 | 被引量 : 0次 | 上传用户:aiggo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  为了让大家提高对循环以及判断语句的掌握,今天分享一道经典题目《约瑟夫生者死者小游戏》。有三十个人在一条船上,但是超载了,需要十五个人下船,于是人们排成一队,排队的位置即是他们的编号(1-30),排好队后,从排头往排尾按照顺序从1到9循环报数,报数到9的人就下船,如此循环,直到船上仅剩下15人。请问,有哪些人下了船?
  通过解答这道题能够提高大家绘制流程图、理解循环体以及判断结构的掌握程度(图1)。



  从流程图中我们可以发现使用了一层循环、三层判断。首先是循环报数(遍历到最后一个再重新回到初始位置开始下一次遍历)直到下船人数达到十五人。其次判断遍历的人是否还在船上,如果在,则报数;否则的话跳过本次循环,遍历下一个人。最后是报数的内容,如果报数到9,那个人就要下船,计数器要返回1,并且下一次遍历时就不考虑他,按照次序依次遍历。相信大家如果能够看懂流程图,那么问题就可以迎刃而解了。
  通过流程图把程序的流程搞清楚之后,我们可以用任何编程语言把代码写出来,我这里选择使用Python软件来编写,代码如图2。



  首先外層people我选择用字典来统计。按照循环的指示,初始情况给30个人都赋予了初始值为1。接下来新建三个变量check作为计数(0-9);i作为人们的编号(1-30);j为下船的人数,一旦下船的人数等于15,退出循环。接下来我们使用一个while循环控制,因为只有30个人所以当i循环到超过30时,手动将i设置为1,进行重复的循环遍历,当j等于15时,代表下船的人数达到约定人数,跳出循环。
  接下来就是本题最关键的环节——统计计数了。当people[i]为0时,表示此人已下船,i加1,继续循环,当people[i]为1时进行check统计,每次加1,当check等于9时,代表报数到9,对应人需要下船,将此人的people[i]值设置为0,显示j为下船的人数,下一个人j加1,运行效果如图3。



  本次实例主要考查对循环和判断结构的理解能力,绘制流程图是一项非常重要的技能,很多复杂的程序不可能上来就写代码,流程图能够帮助我们很好地捋顺思路。
其他文献
前几天和爷爷一起去河里钓鱼,短短半天的时间,就收获到了很多的小鲫鱼,心里乐开了花。晚上回去就想能不能用Scratch程序做一个钓鱼的小游戏呢?  今天就和大家一起分享我如何用掌控板结合Scratch做出一个钓鱼小能手的游戏(图1)。  游戏玩法:平时我们是通过键盘的方向键操作,今天我用掌控板作为游戏手柄,用AB两个控制键控制鱼线上升和下降。按下A键鱼线下沉准备钓鱼,当鱼钩钩住小鱼的时候按B键,鱼线
期刊
目前最好看的国产智能手表  在过去一年里,OPPO在IoT领域持续深入布局,面向运动健康领域,发布了智能手表OPPO Watch、智能手环OPPO Band,以及随之推出的HeyTap健康APP。现在,OPPO Watch ECG版智能手表也来了。  首先,可以毫不夸张地说,我觉得它是目前为止最好看的国产智能手表,除了运动健康需求之外,智能手表要让我愿意每天佩戴它,还是要先好看才行,符合我的审美。
期刊
挑选CPU,AMD/Intel平台各有优势  AMD平台,首推锐龙9 3900X,在多线程性能上有明显的优势,在专业应用中有更为出色的表现。同时产品的频率为3.8GHz~4.6GHz,满足全新的Zen2架构,单核性能、游戏性能也得到了巨大的提升。锐龙9 3900X搭配RTX 3080能兼顾游戏与专业应用。多线程CPU更能发挥显卡性能  Intel平台,第十代酷睿当仁不让。从线程数量到频率都有明显的
期刊
在电纸书盛行的年代,纸质书似乎拥有太多缺点:厚重、不易保存、价格贵等等,但对于一些人来说,纸质书是电子书永远替代不了的。如今也有不少人钟情于纸质书,他们通常会把想看的书列出一个清单,再留出一个下午的空闲时间,沉浸在书店里,比对着书单细细挑选。  相比于拿着书单买书,有些人寻心水之书就全凭运气和缘分了。他们更热衷于逛旧书集市,淘书如同探宝似的。钻进书摊、书堆之中,翻看泛黄的书页,观察其成色、磨损、年
期刊
每年10月是诺贝尔奖开奖的日子,今年日本作家村上春树又双叒陪跑,已经71岁的他不知道还能再等待多少年。除了这位我们熟知的诺贝尔文学奖被提名人外,在诺贝尔自然科学类奖项中也有很多人常年被提名却还没有获得这一科学界最高荣誉。一、 诺奖的提名制度  诺贝尔奖是先由同行提名再评审产生的,不能毛遂自荐。每年委员会向有资格的提名人发出秘密问卷:目前有资格提名的人大约有3000人,包括瑞典皇家科学院院士,诺奖委
期刊
我院外科在使用参芎葡萄糖注射液时发生了一例严重不良反应事件,现报告如下。  1 病例资料  戚某,女,35岁,因打伤头面、全身多处疼痛两天,于2014年6月17日收治入院。诊断:头面部外伤,左眼顿挫伤,额部头皮血肿,全身多处软组织损伤。T 36.5℃,P 80次/min,R 20次/min,BP 110/80mmHg。症状表现:头痛头晕,头面部皮肤青紫肿痛,左眼结膜充血,呕吐,胸闷,无明显心慌心悸
期刊
网上冲印店的选择  网上出照片,也有数码打印和数码冲印两种方式,冲印是使用传统的银盐照片成像,优点是照片不易褪色,保存期长,防水性能较好。而数码打印则是利用打印设备将照片打印出来,再加上不少数码打印机使用第三方墨水,输出的照片保存性较差。因此对于需要长期保存的照片,还是建议使用数码冲印方式。那么,如何识别冲印和打印两种方式呢?除了看清店家的说明外,冲印是需要使用专用照片纸的,因此数码冲印时,多有乐
期刊
有人沉浸在淘旧书的乐趣之中,也有人开始享受互联网时代里用表情包交流的独特方式。在大家的线上日常交流中,特别是对于“90后”、“00后”的年轻网民来说,聊天可以没有文字,但一定不能没有表情包。在一定程度上,表情包已经成为了网络社交的“刚需”。  每个人的身边总有那么几位表情包大富豪,他们所拥有的表情包数量之巨、花样之繁多、更新之迅速、运用之灵活,总能让人感慨,这群人才是虚拟社交里真正的弄潮儿。然而你
期刊
期刊
备好工具,生成控件  在日常办公和生活中经常要制作二维码,比如制作公众号二维码给用户扫描。虽然很多网站提供在线制作二维码服务,但是很多美化项目都是需要收费的,其实借助常用的微软Excel和PowerPoint就可以制作出具有个性的二维码。  在微软Excel和PowerPoint中,制作二维码是通过Microsoft BarCode Control控件生成,由于该控件需要开发工具的支持,因此先点击
期刊