數字遊戲 博弈 連分數

2021-06-27 00:27:33 字數 857 閱讀 6247

兩個人玩乙個數字遊戲,給定兩個正整數a,b,兩個人輪流從乙個數中減去另外乙個數的正數倍,要保證結果非負,首先得到0的人獲勝。例如:30 8經過一步操作可以變為22 8 或者14 8 或者 6 8。兩個人都足夠聰明。

輸入格式:

多組資料,每組資料佔一行是兩個空格分隔的正整數(在32位整書範圍內)

輸出格式:

每組資料一行,輸出是第乙個人贏,還是第二個人贏。

輸入:3 5

4 5輸出:12

/*

兩個人玩乙個數字遊戲,給定兩個正整數a,b,兩個人輪流從乙個數中減去另外乙個數的正數倍,要保證結果非負,

首先得到0的人獲勝。例如:30 8經過一步操作可以變為22 8 或者14 8 或者 6 8。兩個人都足夠聰明。

輸入格式:

多組資料,每組資料佔一行是兩個空格分隔的正整數(在32位整書範圍內)

輸出格式:

每組資料一行,輸出是第乙個人贏,還是第二個人贏。

輸入:3 5

4 5輸出:12

思路:如果你知道連分數

4 + 1/(2 + 1/(6 + 1/7)) 中的冗餘部分可得到簡略記號 [4; 2, 6, 7]。

先手必敗當且僅當:

(sqrt(5)-1)/2=1/[1;1,1,1,...] #include #include #include using namespace std;

double lt=(sqrt(5.0)-1)/2.0;

double rt=(sqrt(5.0)+1)/2.0;

bool iswin(int a,int b)else

} return 0;

}

黃金連分數

分割數0.61803.是個無理數,這個常數十分重要,在許多任務程問題中會出現。有時需要把這個數字求得很精確。對於某些精密工程,常數的精度很重要。也許你聽說過哈勃太空望遠鏡,它首次公升空後就發現了一處人工加工錯誤,對那樣乙個龐然大物,其實只是鏡面加工時有比頭髮絲還細許多倍的一處錯誤而已,卻使它成了 近...

黃金連分數

分割數0.61803.是個無理數,這個常數十分重要,在許多任務程問題中會出現。有時需要把這個數字求得很精確。對於某些精密工程,常數的精度很重要。也許你聽說過哈勃太空望遠鏡,它首次公升空後就發現了一處人工加工錯誤,對那樣乙個龐然大物,其實只是鏡面加工時有比頭髮絲還細許多倍的一處錯誤而已,卻使它成了 近...

黃金連分數

分割數0.61803.是個無理數,這個常數十分重要,在許多任務程問題中會出現。有時需要把這個數字求得很精確。對於某些精密工程,常數的精度很重要。也許你聽說過哈勃太空望遠鏡,它首次公升空後就發現了一處人工加工錯誤,對那樣乙個龐然大物,其實只是鏡面加工時有比頭髮絲還細許多倍的一處錯誤而已,卻使它成了 近...