1.概述
本章是约瑟夫环问题合集。瑟夫环问题,一般可以分为两类,一类是最后一个环的节点问题,一类是下环的顺序。
2. 最后环节点
求最后环节点的问题,相对简单一些,可以根据公式计算,也可以模拟实现。
2.1 士兵存活问题
你是一个士兵,被俘虏了,然后对方提出一个方法,可以让一个士兵存活,从起始人开始,每个人杀死自己后面的一个人。一直剩下最后一人。
假设你有5个人
假设第一轮从1开始,1杀掉2,2死亡,3杀掉4,4死亡,5杀掉1,然后1死亡。
然后第二轮根据顺序,就可以知道3杀掉5,然后最终存活的是5号。
如果人很少,那么可以根据图很快知道死的是那些人。但是如果是成千上万的,那么就不好算了。
这里是有个算法的,那就是2的N次方,可以解开问题,假定每次杀人都是从1号开始。