来源:互联网 时间:2023-06-09 22:55:38
(资料图片仅供参考)
1、约瑟夫环(约瑟夫问题)是一个非常经典的数学应用问题:简单来说,已知n个人(用数字1,2,3表示.n)正围坐在圆桌旁。从编号为k的人开始倒数,
2、数到m的人从队列中出来;继续,他的下一个人又从1开始数,数到m的人又出局了;重复这个规则,直到圆桌周围的人全部出列!
3、约瑟夫斯有一个故事:39个犹太人与约瑟夫斯和他的朋友藏在一个山洞里,39个犹太人决定去死,而不是被敌人抓住。于是决定了自杀模式,41个人排成一圈,第一个人开始报数。
4、每次你向第三个人汇报,那个人一定会自杀。然后下一个人再数,直到所有人都自杀。然而,约瑟夫斯和他的朋友们不想服从。约瑟夫斯要求他的朋友先假装服从,他把他的朋友和他自己安排在16号和31号位置。
5、所以他逃脱了死亡的游戏。
6、这是一个典型的循环链表主题。我们需要创建一个循环链表,按照游戏规则依次删除节点。在链表为空之前,打印元素顺序为out顺序!
7、下面是用C语言写的约瑟夫环问题程序,依次创建链表,添加数据,删除节点操作,直到链表为空。源代码如下:
8、我们可以任意设置人数n和区间m:下图是一个例子的运行结果,模拟了经典的约瑟夫问题,41人,区间3人,最后在16日和31日逃脱!
9、对于初学者来说,这个主题可以很好地帮助他们理解链表、指针和循环的概念。
以上就是约瑟夫环这篇文章的一些介绍,希望对大家有所帮助。
关键词:
下一篇:最后一页
“少年航天科普特训营”举行,VR空间站引关注