连分数

连分数法解佩尔方程特解


一、佩尔方程的形式:


二、关于佩尔方程的特解:

特解是指佩尔方程的最小整数解,容易发现当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

八、代码


连分数,布布扣,bubuko.com

时间: 2024-10-09 20:00:37

连分数的相关文章

2013年第四届蓝桥杯——黄金连分数java

标题: 黄金连分数 黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现.有时需要把这个数字求得很精确. 对于某些精密工程,常数的精度很重要.也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物, 其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!! 言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法. 比较简单的一种是用连分数: 1 黄金数 = --------------------- 1

[NBUT 1224 Happiness Hotel 佩尔方程最小正整数解]连分数法解Pell方程

题意:求方程x2-Dy2=1的最小正整数解 思路:用连分数法解佩尔方程,关键是找出√d的连分数表示的循环节.具体过程参见:http://m.blog.csdn.net/blog/wh2124335/8871535 当d为完全平方数时无解 将√d表示成连分数的形式,例如: 当d不为完全平方数时,√d为无理数,那么√d总可以表示成: 记 当n为偶数时,x0=p,y0=q:当n为奇数时,x0=2p2+1,y0=2pq 求d在1000以内佩尔方程的最小正整数解的c++打表程序(正常跑比较慢,这个题需要离

山科SDUST OJ Problem J :连分数

Problem J: 连分数 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 2723  Solved: 801[Submit][Status][Web Board] Description 一个高为n的连分数定义为 . 给出2个数,一个用p/q的方式表达,另一个用高度为n的连分数来表示,请你判断他们是否相等. Input 输入有多组,每组包含两部分用来表示两种形式的分数:第一部分是p和q(1 ≤ q ≤ p ≤ 10^18),表示分数p/q:然后是一

连分数(分数类模板) uva6875

1 //连分数(分数类模板) uva6875 2 // 题意:告诉你连分数的定义.求连分数,并逆向表示出来 3 // 思路:直接上分数类模板.要注意ai可以小于0 4 5 #include <iostream> 6 #include <algorithm> 7 #include <cstring> 8 #include <cstdio> 9 #include <vector> 10 #include <cmath> 11 #inclu

利用连分数求乘率

[利用连分数求乘率] 2.例题.

[JAVA][2013蓝桥杯预赛 JAVA本科B组][黄金连分数]

标题: 黄金连分数 黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现.有时需要把这个数字求得很精确. 对于某些精密工程,常数的精度很重要.也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物, 其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了"近视眼"!! 言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法. 比较简单的一种是用连分数: 1 黄金数 = -------------------

黄金连分数【大数】

黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现.有时需要把这个数字求得很精确. 对于某些精密工程,常数的精度很重要.也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!! 言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法. 比较简单的一种是用连分数: 这个连分数计算的“层数”越多,它的值越接近黄金分割数. 请你利用这一特性,求出黄金分割

连分数的应用

[连分数的应用] 1.求平方根的普通方法. 2.求sqrt(N)的一般方法. 例子: 2.求对数值. 略. 3.求ax+by=c的整数解. 例题:

p1696 数与连分数

背景... ...:"这个简单...我们还是去刚才的海边呗..."...:"其实今晚...我是有一定要完成的事情的..." .,威尼斯真的是一个美丽的城市...很小的时候我就听说这个地方.. 这一天..从贝鲁特归来的商队..除了布匹和香辛料...还带来的东方的数字....也有人曾经讨论过它们的历史...只是很长时间这些都不被那些数学家们所重视.. 人们怀着敬畏的心情..小心的审视着这些新奇的东西...而它们..给生活在这片土地上的人们所带来的..是很大的帮助....