1.约瑟夫问题:n个人编号为0...n-1.围成一个圈。从编号为0的人开始顺时针计数,每数到k个人时让其出局(第一次出局的是编号为(k-1)mod n的人),接着又从下一个人开始计数。经过n-1轮报数后,求最终留下的人的编号。
我们只关心最后一个留下的人,比如,当删除第一个人后,也就是删除编号为(k-1)mod n的人,此时我们要求的人就是剩下n-1个人中最后留下的那个人。用F[i]表示有 i 个人围成的圈中最后剩下的人的编号,当删除第 1 个人后,我们将原序列重新编号,从原来编号为 k 的开始一次编号 0...i-2,根据原问题的定义,此时F[i-1] 表示剩下的 i-1 个人最后顺下的那个人的编号。那么F[i-1]与F[i]的号码相差一个 k ,注意得取模。于是得到递推式: