君子好逑 发表于 2020-4-12 12:51:29

有点不明白

题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,继续重新开始,问最后留下的是原来第几号的那位。。
这个问题是不是有bug,第一个人和第二个人的数永远是1和二,也就是说经过一定次数的循环报数之后应该只剩第一个和第二个,因为其他人的报数都会因为前两个人而为3,也就是说只会剩下第一个和第二个

heidern0612 发表于 2020-4-12 13:31:07

本帖最后由 heidern0612 于 2020-4-12 13:38 编辑

约瑟夫环的问题。

这个问题的正确描述应该是退出的那个人,下一个算1.

也就是说从当前退出的下一个人开始计算报数,不是从头开始。



简单说10个人计算的话如下:

第一轮:

3退出后,从4开始;

6退出后,从7开始;

9退出后,从10开始;


第二轮:

2退出后,由于3没有了,所以从4开始;

由于没有6了,所以7退出,从8开始……

后面类推。

君子好逑 发表于 2020-4-12 23:43:33

heidern0612 发表于 2020-4-12 13:31
约瑟夫环的问题。

这个问题的正确描述应该是退出的那个人,下一个算1.


哦哦,我还以为直到剩一个人的时候结束
页: [1]
查看完整版本: 有点不明白