有朋友去浦發面試,因為我們是相同崗位,為了查漏補缺,便問了一下他們的機試題目。 機試考3道編程,前兩道很水,最后一道他說有點麻煩,沒有AC。我自己也嘗試着碼了一下,然后發現還是得需要耐心。 在此, ...
約瑟夫環問題的描述為,設有編號為 , , ,n的n n gt 個人圍成一個圈,從第 個人開始報數,報到m時停止報數,報m的人出圈,再從他的下一個人起重新報數,報到m時停止報數,報m的出圈, ,如此下去,直到所有人全部出圈為止。當任意給定n和m后,設計算法求n個人出圈的次序。 解題思路: 網上給的較多的解法是循環鏈表和數學推導出公式的思想,但如果是一個剛接觸C語言沒多久的人,對循環鏈表的解法肯定看不 ...
2014-07-14 23:38 0 5820 推薦指數:
有朋友去浦發面試,因為我們是相同崗位,為了查漏補缺,便問了一下他們的機試題目。 機試考3道編程,前兩道很水,最后一道他說有點麻煩,沒有AC。我自己也嘗試着碼了一下,然后發現還是得需要耐心。 在此, ...
約瑟夫環問題的具體描述是:設有編號為1,2,……,n的n個(n>0)個人圍成一個圈,從第1個人開始報數,報到m時停止報數,報m的人出圈,才從他的下一個人起重新報數,報到m時停止報數,報m的出圈,……,如此下去,知道剩余1個人為止。當任意給定n和m后,設計算法求n個人出圈的次序 ...
我們首先來看一下約瑟夫環問題: 給定m個人,m個人圍成一圈,在給定一個數n,從m個人中的第一個人每第n個人便將其除去,求被最后一個出去的人的編號。 思路: 建立一個長度為m+1的數組,將其的內容初始化為0至m 我們設置變量i與j,i代表數組元素的下表 ...
約瑟夫問題是個有名的問題:N個人圍成一圈。從第一個開始報數,第M個將被殺掉,最后剩下一個,其余人都將被殺掉。 比如N=6,M=5。被殺掉的人的序號為5,4,6。2。3。最后剩下1號。 假定在圈子里前K個為好人,后K個為壞人。你的任務是確定這種最少M,使得全部的壞人在第一個好人 ...
嘗試表達 本人試着去表達約瑟夫環問題:一群人圍成一個圈,作這樣的一個游戲,選定一個人作起點以及數數的方向,這個人先數1,到下一個人數2,直到數到游戲規則約定那個數的人,比如是3,數到3的那個人就離開這個游戲;按這樣的規則,剩下一個人,游戲就結束,這個人就為贏家。(讀者可以試着表達,不認 ...
n個人圍成圈,依次編號為1,2,..,n,現在從1號開始依次報數,當報到m時,報m的人退出,下一個人重新從1報起,循環下去,問最后剩下那個人的編號是多少? 遞歸法 參見百度百科:Josephus(約瑟夫)問題的數學方法 遞推式: 將這些人的編號用對總人數取模所得 ...
在2019騰訊提前批實習的筆試題中就出現了約瑟夫環的問題, 當時我用collections.deque來做的,每次動態的刪除節點,並重新改變指向來實現的, 並沒有細想過有沒有更快的方法。 (由於這種方法過於簡單,就不羅列出來了,需要的朋友自行了解deque的leftappend子方法即可 ...