關於猴子選大王(約瑟夫)問題

摘至本人有道雲筆記《關於猴子選大王(約瑟夫)問題》

有m個猴子圍成一圈,按順時針編號,分別爲1到m。現打算從中選出一個大王。經過協商,決定選大王的規則如下:從第一個開始順時針報數,報到n的猴子出圈,緊接着從下一個又從1順時針循環報數,...,如此下去,最後剩下來的就是大王。

 

看完這道題,首先想到的是列表,而且這個列表是首尾相接不斷循環。針對此問題切入

設置一個列表存儲猴子 a=[1,1,1,1,1,1 ] 所有猴子(未被踢出去的猴子)的初始值爲1,設置計數count,如果count滿足==n,就將該位置上的猴子置爲0(表示該猴子被踢出去),count置爲0,猴子總數減1。

當下標值==列表長度時,說明已經到列表末尾,將index置爲0,從列表首部繼續。

直到最後值爲1(未被踢出)的猴子爲大王。

代碼如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章