小编Xud*_*hen的帖子

如何证明这个约瑟夫问题变体是一个np完全问题?

我有一个约瑟夫问题变体的问题。其描述如下:

\n

有 m 张卡片,编号从 1 到 m\xef\xbc\x8c,每张卡片都有唯一的编号。这些卡片被分发给围坐一圈的 n 个人。请注意m >= n

\n

然后我们选择坐在“p”位置的人“A”出圈,就像约瑟夫斯问题一样。下一步我们跳过p右边的“k”个人,而k是“A”人拿的牌的编号,我们做同样的事情,直到圈子里只剩下一个人。

\n

问题是给定n个人和m张牌,我们是否可以选择n张牌并将它们分配给n个人,使得无论从哪个位置开始(排除第一个位置),最后生存的人始终是队伍中的第一个人圆圈。

\n

例如,m = n = 5,唯一的解是(4,1,5,3,2)。

\n

我认为这个问题是一个np完全问题,但我无法证明。有人有找到多项式时间解决方案或证明它是 np 困难的好主意吗?

\n

--- 示例解决方案 ---

\n
 2: [ 1,  2]\n 2: [ 2,  1]\n 3: [ 1,  3,  2]\n 3: [ 3,  1,  2]\n 4: [ 4,  1,  3,  2]\n 5: [ 4,  1,  5,  3,  2]\n 7: [ 5,  7,  3,  1,  6,  4,  2]\n 9: [ 2,  7,  3,  9,  1, …
Run Code Online (Sandbox Code Playgroud)

algorithm complexity-theory np-complete josephus

5
推荐指数
1
解决办法
412
查看次数