约瑟夫问题数学解法
2026-03-21
约瑟夫问题是一个著名的数学和计算机科学问题,通常描述为:N个人围成一圈,从靠前个人开始报数,每报到M的人将被***掉,下一个人接着从1开始报。如此反复,直到最后只剩下一个人,求最后的胜利者。 对于这个问题,有一种数学解法是基于递推公式的。递推公式可以表示为:f(N,M) = (f(N-1,M) + M) % N,其中f(N,M)表示N个人报数,每报到M时***掉那个人,最终胜利者的编号...
利用C解决约瑟夫问题。
2025-11-23
这里补充一下约瑟夫问题的描述:N个人围成一圈,从第一个开始报数,数到M的人出队,然后他的下一位继续从1开始报数,数到M的出队,如此循环直到剩下一个人,求最后剩下的那个人最初是队伍中的第几位。 解决这道题可以采用模拟报数的方法,建立一个大小为N的数组,数组的第N个元素表示第N个人是否还在队伍中,首先将每个元素都置为1,表示全员都在队伍中。如果第N个人出队,则将第N个元素置为0。...