约瑟夫问题(有时也称为约瑟夫斯置换),是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。人们站在一个等待被处决的圈子里。 计数从圆圈中的指定点开始,并沿指定方向围绕圆圈进行。 在跳过指定数量的人之后,执行下一个人。 对剩下的人重复该过程,从下一个人开始,朝同一...
约瑟夫斯问题是一个数学的经典问题,描述如下: 有n个人围成一圈,从某个人开始报数,每报到m的人出列,然后从下一个人开始重新报数,直至剩下最后一个人为止。问最后剩下的人在原始序列中的位置。 解决约瑟夫斯问题的数学表达式为: f(n, m) = (f(n-1, m) + m) % n 其中f(n, m)表示有n个人时最终剩...
1、约瑟夫问题变形 1 现在改成从第 P 个开始,每隔 M 只报数,报到的退出,直到剩下一只为止。最后剩下的为猴 王。问:猴王是原来的第几只猴子?如: Input m,n:10000 1987 34 The monkey king is no.8577 2、约瑟夫问题变形 2 现在请你输出所有猴子出圈的顺序(其实最后一个就是猴王)。 如输入:8 3 输出...
约瑟夫问题 约瑟夫环问题是一个数学应用题:已知n个人(以编号1,2,3...,n)围坐在一张圆桌的周围。从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列,以此规律重复下去,直到圆桌的人全部出列。通常解决这类问题时我们把编号从0-n-1,最后+1即为原问题的解。 一...
而刘谦的魔术中使用的便是k=2 的特殊情况,也就是数到2的人会被杀掉。说到这里可能会晕,我们不妨先来了解一下关于约瑟夫的传说,以帮助我们进行理解“约瑟夫问题”。 有一个古老的传说,说有64名战士被敌人俘虏了,敌人命令他们排成一个圈,分别编上号码1,2,3,...
解约瑟夫问题。约瑟夫问题是一个出现在计算机科学和数学中的经典问题,可以这样描述:N个人围成一圈,从第一个开始报数,每报数到M的人出列,然后从下一个人开始重新报数,直到最后剩下一个人。编写程序,打印出列的顺序以及最后剩下人的序号。例如N=6,M=5,出列的顺序:5,4,6,2,3,剩下1。 相关知识点: 试题...
约瑟夫问题的源头完全可以命名为“自杀游戏”。本着和谐友爱和追求本质的目的,我们把问题描述如下: 现有T个人围成一桌坐下,编号从1到T,从编号为1的人开始报数。 报数也从1开始,报到M的人离席,从离席者的下一位在座成员开始,继续从1开始报数。 复现这个过程(各成员的离席次序),或者求最后一个在座的成员编号。
约瑟夫问题的解决过程 1、初始情况 在山洞中,约瑟夫站在第19号位置上,而其他40名士兵围成一个圈。按照约瑟夫的要求,每人依次杀掉旁边的人,直到只剩下约瑟夫和另外一名士兵。2、第一轮 第一轮开始,1号士兵杀掉了2号士兵,然后3号士兵杀掉了4号士兵,以此类推。经过这一轮,20名士兵被杀死,还剩下21人。...
约瑟夫问题:有 N 个人围成一圈,每个人都有一个编号,编号由入圈的顺序决定,第一个入圈的人编号为 1,最后一个为 N,从第 k (1<=k<=N)个人开始报数,数到 m (1<=m<=N)的人将出圈,然后下一个人继续从 1 开始报数,直至所有人全部出圈,求依次出圈的编号。如何存储数据 面对一道题,首先需要...