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也就是我們的公鑰,需要...