约瑟夫环乘客问题

原创 2018年04月16日 10:38:50
        30个乘客同乘一艘船,因为严重超载,加上风高浪大,危险万分,因此船长告诉乘客,只有将15名乘客投入海中,其他人才能幸免于难。大家决定30个人围成一圈,从第一个人数起,依次报数,数到第九人,遍把他投入海中,然后从他的下一个人数起,数到第九人,再把他投入海中,如此循环进行,直到剩下15个乘客为止。求出哪些是死亡的位置。
#include<cstdio>
int main() {
	const int n = 30;
	int ar[n] = { 0 };
	int i = 0;//下标
	int k = 1;
	int num = 0;//统计人数
	while (num < 15) 
	{
		if (0 == ar[i])
		{
			if (9 == k)
			{
				++num;
				ar[i] = num;
				k = 0;
			}
			++k;
		}
		i = (i + 1)%n;
	}

	printf("下标编号是:\n");
	for (int j = 1; j <= n; ++j)
		printf("%4d", j);
	printf("\n");
	printf("死亡的编号是:\n");
	for(int j = 0; j < n; ++j)
		printf("%4d", ar[j]);
	printf("\n");
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41822235/article/details/79957313

4.8.一些杂散但值得讨论的问题

-
  • 1970年01月01日 08:00

约瑟夫环之二(用递归的思想解决Josephus问题)

原来写过一篇关于约瑟夫问题的链表实现解法 ,刷九度题到http://ac.jobdu.com/problem.php?pid=1356 时,再次遇到这个问题,记下用递归思想解决约瑟夫问题的方法: 初始...
  • wusuopuBUPT
  • wusuopuBUPT
  • 2014-01-13 10:09:09
  • 8647

约瑟夫环问题递归解法的一点理解

约瑟夫环递归解法代码的一点理解。 约瑟夫生者死者游戏 约瑟夫游戏的大意:30个游客同乘一条船,因为严重超载, 加上风浪大作,危险万分。因此船长告诉乘客,只有将全船 一半的旅客投入海中,其余人才能幸...
  • yanweibujian
  • yanweibujian
  • 2016-03-13 11:32:58
  • 2966

Java实现约瑟夫环问题

约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;...
  • qq_21150865
  • qq_21150865
  • 2017-03-05 14:48:34
  • 5660

约瑟夫环问题的几种解法

一、问题的来历     据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39个犹太人与Josephus及他的朋友躲在一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于...
  • ltxiaobing
  • ltxiaobing
  • 2015-12-27 14:55:46
  • 2051

程序员面试宝典之数据结构基础----循环链表(约瑟夫环问题)

关于循环链表,即单链表的为指针指向头结点,当然在建立循环链表的时候可以将链表的为指针指向头结点,但本例用的是先建立一个只有一个节点的循环链表(即next指针指向自己结点),然后再在此循环链表中插入节点...
  • crazyer2010
  • crazyer2010
  • 2012-10-03 18:51:45
  • 4587

约瑟夫环问题(数组和list方法)

先介绍一下什么是约瑟夫环问题:就是N个人围成一圈,从开头(下标为0)报数,报到你设置的Number就要出局,几轮下来后剩下最后一个人输出这个人的序号! 这里只介绍两种比较浅显易懂自己编写的代码,另外...
  • wujiafei_njgcxy
  • wujiafei_njgcxy
  • 2017-08-10 19:51:30
  • 398

约瑟夫环问题及其尽可能的优化

约瑟夫问题描述: n个人围成一个圈,编号为0,1,2,..,n-1,设定一个常数k,然后从0号开始从1依次报数,报到k的那个人退出圈,后面一个人继续从1开始报数,依次类推,求最后剩下的人的编号 方...
  • yingzinanfei
  • yingzinanfei
  • 2016-04-17 18:47:29
  • 1240

约瑟夫环问题(运用递推)

利用数学推导,下面是推导的过程:         (1)第一个被删除的数为 (m - 1) % n。         (2)假设第二轮的开始数字为k,那么这n - 1个数构成的约瑟夫环为k...
  • haoni123321
  • haoni123321
  • 2012-01-05 16:31:33
  • 4919

约瑟夫环(数学高效率解法,很详细)

 5.5.4 用数学方法解约瑟夫环(1) 原文copy:http://book.51cto.com/art/201403/433941.htm 5.5.4  用数学方法解约瑟夫环(1...
  • qq_25973267
  • qq_25973267
  • 2015-12-25 22:49:21
  • 7483
收藏助手
不良信息举报
您举报文章:约瑟夫环乘客问题
举报原因:
原因补充:

(最多只允许输入30个字)