约瑟夫问题(有时也称为约瑟夫斯置换),是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。人们站在一个等待被处决的圈子里。 计数从圆圈中的指定点开始,并沿指定方向围绕圆圈进行。 在跳过指定数量的人之后,执行下一个人。 对剩下的人重复该过程,从下一个人开始,朝同一...
约瑟夫问题是一个著名的问题:假设有N个人围坐在一圈,从第一个人开始报数,每报数到第M个人时,那个人就会被淘汰,最终只剩下一个人,其余的人都会被淘汰。例如,如果N=6且M=5,那么被淘汰的人的编号将是5、4、6、2、3。最后,编号为1的人将留下。假设在圈子里的前K个人是好人,后K个人...
约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的人的序号为5,4,6,2,3。最后剩下1号。假定在圈子里前K个为好人,后K个为坏人,你的任务是确定这样的最少M,使得所有的坏人在第一个好人之前被...
幸存者的序号与参与人数之间存在着神秘的联系。当参与人数为2的n次幂时,最终的幸存者必然是1号。而当总人数不满足这一条件时,约瑟夫也找到了规律:总人数为2的n次幂+a时,幸存者的序号为2a+1。引人深思的结局 历史长河中,约瑟夫问题成为了数学与智慧相结合的经典典故,饱含着对逆境求生的勇气和智慧的讴歌。
什么是约瑟夫环问题?约瑟夫,是一个古犹太人,曾经在一次罗马叛乱中担任将军,后来战败,他和朋友及另外39个人躲在一口井里,但还是被发现了。罗马人表示只要投降就不死,约瑟夫想投降,可是其他人坚决不同意。怎么办呢,他想到一个主意:让41个人围成一个圆圈,从第一个人开始报数,数到3的那个人被旁边的人杀死。这样就...
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。这个就是约瑟夫环问题的实际场景,有一种是要通过输入n...
这是一个古老的传说:有64名战士被敌人俘虏了,敌人命令他们排成一个圆圈,编上号码1,2,3,…,64,敌人把1号杀了,又把3号杀了,他们是隔一个杀一个这样转着圈杀,最后剩下一个人,这个人就是约瑟夫斯,请问约瑟夫斯是多少号?这就是“约瑟夫斯问题”。这个问题是比较容易解答的:...
跟八皇后问题一样,你说可能有八个皇后吗?这些都是想象出来的,给经典的算法套一个经典的背景,这样就不大会忘记,世界叫约瑟夫的人也不在少数吧