約瑟夫問題的兩個O(log n)解法 這個是學習編程時的一個耳熟能詳的問題了: n個人(編號爲0,1,...,n-1)圍成一個圈子,從0號開始依次報數,每數到第m個人,這個人就得自殺, 之後從下個人開始繼續報數,直到所有人都死亡爲止.問最後一個死的人的編號(其實看到別人都死了之後最後剩下的人可以選擇不自殺……). 這個問題一般有兩種問法: 給出自殺順序.不少數據結構初學書都會以這個問題爲習題考驗讀者對線性表的掌握. 比較常見的解法是把所有存活的人組織成一個循環鏈表,這樣做時間複雜度是O(n*m)…