演算法實現 josephus problem

2021-04-23 05:17:37 字數 612 閱讀 1113

josephus problem:

n個人圍成一圈,1、2、1、2報數,數到2的人被殺,最後留下的人生存,如何找到乙個位置是自己生存。

下面乙個好玩兒的程式可以解決josephus problem,並擴充套件為逢q殺,enjoy it:

#include 

#include 

int ceiling(int divident, int divisor)

int main(int argc, char *argv)

int d = 1;

int n = atoi(argv[1]);

int q = atoi(argv[2]);

while (d <= (q - 1) * n) 

int serviver = q * n + 1 - d;

printf("一共%d個人參加, 每次數到%d的人被殺/n", n, q);

printf("最開始站在第%d個位置,能最終避免被殺/n", serviver);

return 0;

}原理與分析請見《具體數學》第三章第三節,我只是小小的實現了一下其中的結論,改天再補下原理部分好了,不得不佩服數學的偉大啊。

嘿嘿,誰來跟我玩兒這個遊戲啊?

python 實現演算法 Python實現演算法 一

1.二分查詢 def binary search mylist,item low 0 high len mylist 1 while low high mid low high 2 如果 low high 2不是偶數,python自動將mid向下圓整。guess mylist mid if gues...

k NN演算法實現k 鄰近演算法實現

將資料點 1,1.1 定義為類a,資料點 0,0.1 定義為類b k 鄰近演算法實現 計算已知類別資料集中的點與當前點之間的距離 按照距離遞增次序排序 選取與當前點距離最小的 個點 確定前 個點所在的類別的出現頻率 返回前 個點出現頻率最高的類別作為當前點的 分類 from numpy import...

c 實現rsa演算法 RSA演算法實現過程

rsa演算法是實現非對稱加密的一種演算法,其用到很多有關數論的內容,在此我們不多討論。而將目光聚焦於演算法的實現過程。rsa過程 第二步 計算n a b 61 53 3233 第三步 計算 a 1 b 1 60 52 3120 第四步 選擇與3120互質的乙個數e 17,這個e也就是我們的公鑰,需要...