理科男【數論】
阿新 • • 發佈:2019-01-10
題目大意:
對求分數,求其在進位制下是有限小數還是迴圈小數。如果是有限小數,求小數點後的位數;如果是迴圈小數,則求混迴圈部分和迴圈節的長度又分別是多少。
3
1 8 10
17 99 10
217 990 10
3 0
0 2
1 2
思路:
這道數論,好難啊。。。
證明我肯定是看不懂了。只能按照題解所說的打,但是什麼都不懂。
在這裡把 題解 的證明放一下。
首先把約分成既約分數。設 , 為原分數小數點後第位的數。
顯然有 。
剩下來的餘數 。
依此類推我們有 , 。
不難發現如果 ,那麼小數點後第 位到第 位這一段就可以視為一
個迴圈節。
暴力計算數列 ,找到第一個與前面重複的項,就可以找到最短迴圈節了。
這個重複的項前面的部分匯出混迴圈部分。
如果最早在處計算到 ,那麼原分數就是一個小數點後有 位的有限小數。
以上便是 50 分的解法。
50分解法還很容易理解,但是接下來的100分做法就真的很難理解了。。。(也許是我太菜了吧)
下面我們對 數列的性質做一些討論。
如果 ,對於任意的 都有 。
設 為 時的乘法逆元,即 。由乘法逆元的性質 存在且唯一。
假設最早出現重複的位置是 。
如果 ≠ ,那麼