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

网站建设请示设计教程网站

网站建设请示,设计教程网站,购物商城网站源码,做网站前怎么写文档1. 问题描述 约瑟夫问题#xff08;Josephus problem#xff09;是一个经典的数学和计算机科学问题#xff0c;源于犹太历史学家弗拉维奥约瑟夫斯#xff08;Flavius Josephus#xff09;的著作《犹太战记》。问题的描述如下#xff1a;   在这个问题中#xff0c;有n… 1. 问题描述 约瑟夫问题Josephus problem是一个经典的数学和计算机科学问题源于犹太历史学家弗拉维奥·约瑟夫斯Flavius Josephus的著作《犹太战记》。问题的描述如下   在这个问题中有n个人站成一个圈从1到n编号。从第一个人开始每次数m个人数到第m个人就将其从圈中删除然后从下一个人开始重新数重复这个过程直到所有人都被删除。问题是最后剩下的那个人的编号是多少   为了解决约瑟夫问题可以使用递归或迭代的方法。下面是一个简单的递归解法的伪代码 function josephus(n, m):if n 1:return 1else:return (josephus(n - 1, m) m - 1) % n 1这个递归函数的基本思想是假设已知n-1个人的问题的解那么在这个基础上考虑第n个人加入的情况。在每一轮中我们实际上将问题规模缩小为n-1个人。   注意这里的编号是从1开始的因为在问题的原始描述中人的编号是从1到n的。在某些变体中编号可能从0开始因此在实现时需要注意这一点。 2. 解题思路 解决约瑟夫问题的一般思路是通过模拟每一轮的删除过程不断更新当前位置并在满足终止条件时停止模拟。下面是一种基于迭代的解题思路和设计   解题思路 初始化 创建一个包含n个人初始编号的列表并初始化一个变量表示当前位置。循环删除过程 在当前位置开始数m个人。计算出要删除的人的位置。从列表中删除该位置的人。更新当前位置为删除位置。 终止条件 当剩下的人数满足终止条件时停止循环。返回结果 根据具体要求返回结果。在约瑟夫问题中通常是返回最后剩下的一个人的编号或一组编号。 3. 代码实现 3.1 代码实现一 30 个人在一条船上超载需要 15 人下船。于是人们排成一队排队的位置即为他们的编号。报数从 1 开始数到 9 的人下船。如此循环直到船上人不能数到9人为止问剩下的人的编号 def josephus(n, m):# 创建一个列表表示n个人的初始编号people list(range(1, n 1))# 初始化变量表示当前位置current 0# 循环直到剩下8个人while len(people) 8:# 计算下一个要删除的人的位置current (current m - 1) % len(people)# 删除当前位置的人del people[current]# 返回剩下的最后一个人的编号return people# 示例有30个人每次数9个人 result josephus(30, 9) print(最后剩下的人的编号是:, result) 运行效果 3.2 代码实现二 题目修改为   30 个人在一条船上超载需要 15 人下船。于是人们排成一队排队的位置即为他们的编号。报数从 1 开始数到 9 的人下船。如此循环直到船上仅剩 15 人为止问剩下的人的编号 def josephus(n, m, k):# 创建一个包含n个人初始编号的列表people list(range(1, n 1))# 初始化变量表示当前位置current 0# 循环直到剩下的人数满足终止条件while len(people) k:# 在当前位置开始数m个人计算出要删除的人的位置current (current m - 1) % len(people)# 从列表中删除该位置的人del people[current]# 返回剩下的人的编号return people# 示例有30个人每次数9个人删除直至剩下15个人 result josephus(30, 9, 15) print(剩下的人的编号是:, result)3.3 代码实现三 题目修改为   30 个人在一条船上超载需要 15 人下船。于是人们排成一队排队的位置即为他们的编号。报数从 5 开始数到 9 的人下船。如此循环直到船上仅剩 15 人为止问剩下的人的编号 def josephus_with_start(n, m, k, start):people list(range(1, n 1))current start - 1 # 起始位置while len(people) k:current (current m - 1) % len(people)del people[current]return people# 示例有30个人每次数9个人删除直至剩下15个人起始位置为5 result josephus_with_start(30, 9, 15, 5) print(剩下的人的编号是:, result)3.4 代码实现四 题目修改为   30 个人在一条船上超载需要 15 人下船。于是人们排成一队排队的位置即为他们的编号。报数从 1 开始数到 9 的人下船但是每隔一轮人才下船。如此循环直到船上仅剩 15 人为止问剩下的人的编号 def josephus_with_custom_deletion(n, m, k, deletion_rule):people list(range(1, n 1))current 0while len(people) k:current deletion_rule(current, m, len(people))del people[current]return people# 示例有30个人每次数9个人删除直至剩下15个人但是每隔一轮删除一个人 def custom_deletion_rule(current, m, length):return (current m) % lengthresult josephus_with_custom_deletion(30, 9, 15, custom_deletion_rule) print(剩下的人的编号是:, result)4.参考 https://www.runoob.com/python3/python-joseph-life-dead-game.html
http://www.pierceye.com/news/164056/

相关文章:

  • 网站建设项目资金申请wordpress主题美容
  • 专门做财经的网站软件开发都有哪些项目
  • 湛江网站制作多少钱建网站程序工具
  • 四川省乐山市建设银行网站一级门户网站建设费用
  • 六安网站制作哪里有网站备案网站
  • 石家庄手机网站建设公司wordpress媒体库难用
  • wordpress上传完了周口seo 网站
  • 广州网站建设技术方案建设宠物网站的目的
  • 邢台网站维护网络营销推广方法及分类
  • 做网站买过域名之后门户网站建设公司报价
  • 广告网站设计公司好吗重庆在线app
  • 深圳网站建设哪家公司便宜网站一般用什么语言做
  • 网站平台建设所需开发工具成都麦卡网络做网站开发怎么样
  • 可以做网站的电脑软件济南网页设计
  • 推广网站制作网站建设代理怎么做
  • 做网站页面遇到的问题网站规划设计的步骤
  • 请人做网站要多少钱做视频网站代码
  • 厦门建设网站的公司苏州外贸公司网站建设流程图
  • php做的静态网站怎么加密seo是什么工作
  • 溧水网站建设建立什么指标体系和评价程序规范
  • 怎样向顾客电销网站建设一号网站建设
  • 平陆县做网站移动网站开发的视频下载
  • 百度做个公司网站要多少钱区块链开源平台
  • 企业网站建设建设网站指定关键词优化
  • 找兼职做网站的哪里找建筑学院app网站
  • 电影采集网站建设松门建设规划局网站
  • 多用户自助建站系统wordpress修改生效
  • 免费学编程国内网站珠海网站建设 科速
  • 网站制作公司兴田德润简介福州公司做网站
  • 织梦网站图标路径上海网站推广