猴子選大王,約瑟夫問題

2022-09-04 17:24:10 字數 615 閱讀 4351

17個猴子圍成一圈,從某個開始報數1-2-3-1-2-3-……報「3」的猴子就被淘汰,遊戲一直進行到圈內只剩乙隻猴子它就是猴大王

思路:本來想直接操作list,結果總是報錯,後來想了想還不如寫個單獨的陣列存放,原始陣列存放最開始的猴子與位置,在用新的陣列來標記還在圈內的

num =3 #間隔數

sum=17 #總數

now_sum = sum

a=0 #初始計數

all_list = list(range(1 , sum+1))

end_all_list =

end_all_list = list(range(sum))

while now_sum > 1:

for x in range(sum):

if all_list[x] != 0:

a+=1

if a == num:

all_list[x] = 0

a = 0

now_sum-=1

print(all_list)

print('end')

print(all_list)

print(end_all_list)

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

問題描述 約瑟夫問題 有 只猴子,按順時針方向圍成一圈選大王 編號從 到 從第 號開始報數,一直數到 數到 的猴子退出圈外,剩下的猴子再接著從1 開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸入 後,輸出最後猴王的編號。輸入資料 每行是用空格分開的兩個整數,第乙個是 n,...

猴子選大王 約瑟夫問題

例題描述 由m只猴子圍成一圈,從1到m進行編號,打算從中選出乙個大王,經過協商,決定選出大王的規則 從第乙個開始迴圈報數,數到n的猴子出圈,下乙個猴子從1開始報數。輸入樣例 3 2 輸出樣例 3方法一 模擬法 include using namespace std define max 100 lo...

約瑟夫問題,猴子選大王

描述 約瑟夫問題 有 只猴子,按順時針方向圍成一圈選大王 編號從 到 從第 號開始報數,一直數到 數到 的猴子退出圈外,剩下的猴子再接著從1開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸入 後,輸出最後猴王的編號。輸入每行是用空格分開的兩個整數,第乙個是 n,第二個是 m...