約瑟夫環實現

2021-09-12 02:53:29 字數 606 閱讀 1953

約瑟夫環問題,這是乙個很經典演算法,處理的關鍵是:偽鍊錶

問題描述:n個人圍成一圈,從第乙個人開始報數,報到m的人出圈,剩下的人繼續從1開始報數,報到m的人出圈;如此往復,直到所有人出圈。(模擬此過程,輸出出圈的人的序號)

//1 2 3 4 5 6 7 8 [3, 6]出圈 剩下7 8 1 2 4 5

// 7 8 1 2 4 5 [1, 5]出圈 剩下 7 8 2 4

// 7 8 2 4 [2]出圈 剩下 4 7 8

// 4 7 8 [8]出圈 剩下 4 7

// 4 7 [4]出圈 剩下7

// 7 最後[7] 出圈

//約瑟夫環函式

function josephus (arry, n) else

}}var arry = [1,2,3,4,5,6,7,8]

var a = josephus(arry, 3)

第1次出圈[3]

第2次出圈[6]

第3次出圈[1]

第4次出圈[5]

第5次出圈[2]

第6次出圈[8]

第7次出圈[4]

第8次出圈[7]

約瑟夫環 VC 實現

問題描述 設編號為1,2,n n 0 的人按順時針方向圍坐一圈,每人持有乙個正整數密碼。開始時任意給出乙個報數上限值m,從第乙個人開始沿順時針方向自1起順序報數,報到m時停止報數,報m的人出列,將他的密碼作為新的m值,從他在順時針方向上的下乙個人起重新自1起順序報數 如此下去,直到所有人全部出列為止...

約瑟夫環的實現

用迴圈鍊錶實現的,思路很簡單,只是要注意指標的修改,程式設計基礎差的容易出錯。約瑟夫環 迴圈鍊錶實現 author milo.wang date 2012 9 15 include using namespace std typedef struct node node,nodeptr void j...

約瑟夫環的實現

首先介紹一下約瑟夫環 約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3 n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。通常解決這類問題時我們把編號從0 ...