当前位置: 首页 > news >正文

python——案例16:约瑟夫生者死者链队列

约瑟夫游戏的大意是:一条船上有30个人,因为在海上遇到风暴
因此船长告诉乘客,必须牺牲15个人,并议定30个人围成一圈,
由第一个人数起,依次报数,数到第9人,便把他投入大海中,然后再从他的下一个人数起,
数到第9人,再将他扔进大海中,如此循环地进行,直到剩下15个乘客为止。

问题是编号多少会被牺牲?

'''
案例16:约瑟夫生者死者链队列
约瑟夫游戏的大意是:一条船上有30个人,因为在海上遇到风暴
因此船长告诉乘客,必须牺牲15个人,并议定30个人围成一圈,
由第一个人数起,依次报数,数到第9人,便把他投入大海中,然后再从他的下一个人数起,
数到第9人,再将他扔进大海中,如此循环地进行,直到剩下15个乘客为止。问题是编号多少会被牺牲?'''
people={}
for x in range(1,31):  #for循环给30个人都赋值,初始值为1.people[x]=1
print(people)
check=0                #此处i为编号,j为下船人数
i=1
j=0
while i<=31:           #此处当i=31时,设置i=1.依次循环if i==31:i=1elif j==15:         #j为下船人数,当15人下船后退出循环breakelse:if people[i]==0:i+=1continueelse:check+=1if check==9:       #此处为数到九的人设为0,然后重新开始计数people[i]=0check=0print("编号{}下船了".format(i))j+=1else:i+=1

 

http://www.lryc.cn/news/117679.html

相关文章:

  • 【人工智能前沿弄潮】—— 玩转SAM(Segment Anything)
  • 每日一题——合并两个有序的数组
  • MPP架构和Hadoop架构的区别
  • Java02-迭代器,数据结构,List,Set ,Map,Collections工具类
  • 福布斯发布2023云计算100强榜单,全球流程挖掘领导者Celonis排名17
  • 计算机网络 MAC地址
  • Jay17 2023.8.10日报
  • Winform中DatagridView 表头实现一个加上一个checkBox,实现全选选项功能
  • rust基础
  • 剑指offer39.数组中出现次数超过一半的数字
  • spring技术栈面试题
  • Android Glide MemorySizeCalculator计算值,Kotlin
  • KEIL自带的Jlink怎么升级更换版本
  • 图的遍历之 深度优先搜索和广度优先搜索
  • Java学习笔记27——file类
  • 细胞——求细胞数量 C++详解
  • 【计算机视觉】关于图像处理的一些基本操作
  • Android Animation Made Easy
  • 56从零开始学Java之与字符串相关的正则表达式
  • STM32 定时器自动重装载寄存器ARR带来的影响,ARPE0和1区别
  • vue 把<style scoped lang=“less“> 单独写成less文件再导入使用
  • C++ 字符串
  • springboot 报错处理(长期更新 2023.8.10)
  • Maven出现报错 ; Unable to import maven project: See logs for details错误的多种解决方法
  • 33_windows环境debug Nginx 源码-安装WSL
  • Java中的ZooKeeper是什么?
  • 【数学】CF1796 C
  • SCI论文中字体和图片字体大小的要求
  • react-dnd的使用
  • ELF program/section segment解析