Josephus problem 约瑟夫环问题
约瑟夫环问题的描述如下:
n个人, 1,2,3….n. index从1开始, 踢出第k个. 然后问留下的几号?
这个和小时候分拨用的, “泥锅儿 泥碗儿 你滚蛋” 一模一样, “泥锅儿 泥碗儿 你滚蛋”是k= 9的约瑟夫环问题.
用动态规划, 可以得到一下公式:
Base case是: f(1,k) 就是从1个人中踢出第k个, 因为只有一个人, 所以这个人就是留下的. 返回1.
Recursion case: f(n,k)从n个踢出k个 n从1开始, f(n-1,k)踢出一个人后, 剩下的人继续玩, k-1是选k个人, +1 是因为第一次的时候, 第一个人已经跳过了
Leave A Comment