首頁 > 數論 Number Theory > Josephus Problem

Josephus Problem

Categories: 數論 Number Theory
  1. Yu-Han
    2009/7/13 於 0:18 | #1

    其實還有其他更快的解法,Concrete Mathematics 3.3節上的解法類似http://www.auto.tuwien.ac.at/~blieb/woop/josephus.html。
    而The Art of Computer Programming 1.3.3的習題31解法類似http://blog.csdn.net/solofancy/archive/2009/05/24/4211770.aspx的解法1(它的解法三好像有問題)。
    而http://citeseer.ist.psu.edu/gelgi02time.html這裡提供的方法和上一個解法結合之後就是我看到最快的方法了,實做也不難。

  2. Yu-Han
    2009/7/13 於 0:28 | #2

    如果是要找出所有被殺的順序,那O(n)應該沒辦法再改進了。如果只是要找最後一個被殺的人,或是找第k個被殺的人,上一篇提的方法應該在理論上都有改進。

  3. 2009/7/13 於 13:59 | #3

    感謝你提供的資料。citeseer 的那篇論文應該是時間複雜度最好的一個,不過它的代數符號太多了,我恐怕會消化不良。等哪天我良心發現了,才會去細讀它吧。:)

    順便補充一下 m = 2 的時候的解法:去除 n 的最高位元,然後整體左移一位,最後加上一。時間複雜度為 O(logn)。

  1. No trackbacks yet.