哈喽大家好,我是你们的九爷。今天本蒟蒻来给你们写一写 约瑟夫问题

首先来看定义:

约瑟夫问题,是一个计算机科学和数学中的问题,在计算机编程的算法中,类似问题又称为约瑟夫环,又称“丢手绢问题”。

==百度给了我一堆废话==

跳过那些哔哔叭叭的废话,百度是这样简述我们约瑟夫问题的

题目中30个人围成一圈,因而启发我们用一个循环的链来表示,可以使用结构数组来构成一个循环链。结构中有两个成员,其一为指向下一个人的指针,以构成环形的链;其二为该人是否被扔下海的标记,为1表示还在船上。从第一个人开始对还未扔下海的人进行计数,每数到9时,将结构中的标记改为0,表示该人已被扔下海了。这样循环计数直到有15个人被扔下海为止。

好血腥啊——

为了不吓到大家,我就从网上搜罗了两道正常的约瑟夫问题,分别用c++和python实现

c++版约瑟夫问题:

c++版约瑟夫问题

注:本网站是我学习c++的网站,需要注册

本题需要用标记数组法来实现,可以初始化一个数组,然后每当一个人噶了,就标记他1,然后继续,知道最后一个,打个换行再输出

#include<iostream>
using namespace std;int main()
{int n,m;cin>>n>>m;int b[n+7];for(int i=1;i<=n;++i){b[i]=0;}int a,left,num;left=n;a=0;num=m;while(left>-1){a++;if(a>n){a-=n;}if(b[a]==0){num--;if(num==0){if(left==1){cout<<endl;left=-2; }cout<<a<<" ";b[a]=-1;left--;num=m;}} }return 0;
}

奈斯,下一个

python版约瑟夫问题:

本题为网络题目,这里放成文本文档了

有n个人围成一圈,从第一个人开始报数,报数从1到3,数到3的
人退出,继续从1到3,每次数到3的人退出。最后留下一个人,留
下这个人原来是第几号?
输入:n个人
输入:留下的一个人原来是第几号?
样例输入:5
样例输出:4

另辟蹊径的思路如下↓

我们可以先把头两项pop出去,放到最后,然后再把第三项pop出去,但不用再放到最后了,重复,知道只有一个了

快乐上代码~~

n=int(input())
a=[]
b=0
for x in range(1,n+1):a.append(x)
while len(a)>1:for i in range(2):b=a.pop(0)a.append(b)a.pop(0)
print(a)

原创不易,如果对您有帮助,请点赞关注,我会持续输出优质题解

约瑟夫问题-pythonc++相关推荐

  1. python中约瑟夫环程序_Python实现约瑟夫环问题的方法

    本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...

  2. 约瑟夫环问题的两种解法(详解)

    约瑟夫环问题的两种解法(详解) 题目: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个人排成一个圆 ...

  3. 用C++实现约瑟夫环的问题

    约瑟夫问题是个有名的问题:N个人围成一圈.从第一个開始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉. 比如N=6,M=5.被杀掉的人的序号为5,4,6.2.3.最后剩下1号. 假定在圈子里前K ...

  4. 约瑟夫死亡游戏算法问题

    代码: #include<iostream> #include<stdlib.h> using namespace std; typedef int datatype; typ ...

  5. 链表问题6——环形单链表的约瑟夫问题(初阶)

    题目 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方 ...

  6. P1996 约瑟夫问题

    题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,--依次类推,直到所有的人都出 ...

  7. 五、单向环形链表---实现约瑟夫(Josephu)问题

    使用单向环形链表实现约瑟夫(Josephu)问题 1.约瑟夫(Josephu)问题描述 Josephu 问题为:设编号为 1,2,- n 的 n 个人围坐一圈,约定编号为 k(1<=k<= ...

  8. python约瑟夫环问题给十个学生编号报到3者出列_趣味算法--约瑟夫环问题(示例代码)...

    问题描述 已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌上.指定编号为k的人开始从1报数,数到m的那个人出列:出列那个人的下一位又从1开始报数,数到m的那个人出列:以此规则重复下去, ...

  9. 一文读懂约瑟夫环算法

    2020-05-25 20:13:40 作者 | 扬帆向海 责编 | 王晓曼 出品 | CSDN博客 问题描述 约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的 ...

最新文章

  1. mac hdmi 不能调整音量_搭配这几个软件,你的 AirPods 在安卓、Mac 上会更好用
  2. Socket UDP无连接通信
  3. 新闻发布系统类图_如何熟悉一个系统?(内含知识大图)
  4. html写个用户协议,五分钟学会HTML5的WebSocket协议
  5. 集群(cluster)amp;高可用性(HA)概念
  6. Spring的基本使用
  7. 桩位编号插件xzbh_饶平专业泵站基坑拉森钢板桩施工规范
  8. kafka详解及搭建
  9. URAL 1031 Railway Tickets
  10. (大家发表一下看法)微软研发智能系统 可通过电脑24小时监控员工
  11. SpringBoot06-Dubbo和Zookper集成
  12. 跨期套利交易系统策略
  13. f1签证计算机专业容易拒签吗,美国f1签证会被拒签吗?
  14. NLP最简单中文分词介绍
  15. ubuntu登录桌面后只显示壁纸,排查方案
  16. 软件一般是用什么语言开发的
  17. 如何在HTML中修改网站标题和图标?
  18. Arduino IDE环境下WeMos D1开发板引脚定义和映射
  19. python画旺仔代码_Python基础3
  20. 保证数据库质量安全:从0开始的数据测试

热门文章

  1. 万网主机安装 mysql_删除万网锋云主机默认Apache与MySQL_MySQL
  2. 怎么设置table(表格)手机端自适应宽度
  3. WebContent vs webapp
  4. 10.29关于数字大爆炸游戏规则的重新理解以及重打
  5. ROS2学习系列——(小海龟安装和使用)
  6. 【2020祥云杯】misc-到点了
  7. 机器学习--SVM(支持向量机)核函数原理以及高斯核函数
  8. python安装torch详细步骤
  9. parkingLot
  10. QSettings常用方法