連分數法解佩爾方程特解
一、佩爾方程的形式:
二、關於佩爾方程的特解:
特解是指佩爾方程的最小整數解,容易發現當x最小的時候y也同樣達到最小。在一般情況下,佩爾方程的特解是通過暴利枚舉方法得到的,本文將介紹如何用應用連分數法求特解。
本文將不涉及證明,只介紹方法。
三、連分數法:
一個實數的簡單連分數表示,是指將一個實數用以下方法表示:
可以把連分數簡記為:
有理數的連分數有兩種表示形式:
所有無限連分數都是無理數,而所有無理數都可以用一種精確的方式表示成無限連分數,可以用這種方法逼近,無理數的值。
四、關於一個非完全平方數的平方根的連分數表示:
可以證明:一個非完全平方數的平方根的連分數是以周期呈現的。
比如:
簡寫為:
在之后就會循環出現1,2,4,2,1,8
我們不妨這樣記這種連分數的形式:
顯然循環節的長度是6
並且還有個重要的特點:這個循環節一定是從開始的,且最后一個數
一定是2倍的
五、求解佩爾方程的最小特解:
我們將寫成連分數的形式:
並且我們記:
(關於計算p,q:只要按照連分數的展開形式,迭代計算即可)
其中如果記循環節長度為s
那么有如下結論:
1、如果s為偶數時。最小特解為:
2、如果s為奇數時,最小特解為:
六、計算
:
我們希望得到准確的連分數展開,那么關鍵在於不用浮點型計算。接下來以為例,解釋如何計算
的連分數。
我們記當前展開為,那么首先
按照這種方式,我們計算出了的連分數:
然后可以計算出來:
由於循環節長度6是偶數,那么佩爾方程的最小特解是:
之后我們參照上面的例子,來設計計算連分數的算法:
我們記:
那么顯然有:
之后我們可以得到:
可以證明,這里一定是大於0的,這個實際上就是下次的
繼續推導有:
可以證明,分母是可以被整除的。那么上式就可以寫成:
那么容易得到新的b,c是:
還有,結果很大1000以內好多結果都超long long了。。。要改成大數才行。。。
七、關於如何解佩爾方程:
這個請參考AekdyCoin牛的空間:http://hi.baidu.com/aekdycoin/item/a45f7c37850e5b9db80c03d1