[学习笔记] Pell方程

本文介绍了Pell方程的定义,如何找到基本解,以及如何通过基本解扩展出所有解。通过连分数表示法,阐述了求解Pell方程的方法,包括计算连分数的递推公式和扩展解的公式。还提到了通过已知解生成新解的技巧,适合数学和算法爱好者学习。
摘要由CSDN通过智能技术生成

感谢这两位巨佬,部分思路和图片来源于他们的启发:

IBN5100
The-Pines-of-Star

是什么?

Pell \text{Pell} Pell方程主要用来解决下面形式的方程:
x 2 − d y 2 = 1 x^2-dy^2=1 x2dy2=1其中 d d d是正数且不是完全平方数,若 x , y x,y x,y都为整数的解称为这个方程的解,其中 x + y d x+y\sqrt d x+yd 最小的那组解就称为 Pell \text{Pell} Pell方程的基本解,我们要解决两个问题:求出基本解和用它扩展出所有解。

基本解?

本文结论大多不给出证明,但是会讲清楚作法。

首先要知道连分数表示法,是将一个实数用以下方法表示:
nmsl
连分数的求法就是分离最多的正整数,使剩下的为非负,可以把连分数简记为 x = [ a 0 ; a 1 , a 2 , a 3 . . . . ] x=[a_0;a_1,a_2,a_3....] x=[a0;a1,a2,a3....]

结论1:有理数的连分数是有限的,无理数的连分数是无限的,所以可以用这种方法逼近无理数的值。

举个例子,比如 22 \sqrt{22} 22 的连分数:
nmsl
简写为: 22 = [ 4 ; 1 , 2 , 4 , 2 , 1 , 8 ] \sqrt{22}=[4;1,2,4,2,1,8] 22 =[4;1,2,4,2,1,8],其中后面 6 6 6项是循环,也可以表示为 22 = [ 4 ; < 1 , 2 , 4 , 2 , 1 , 8 > ] \sqrt{22}=[4;<1,2,4,2,1,8>] 22 =[4;<1,2,4,2,1,8>]

结论2:循环的最后一项是 a 0 a_0 a0的两倍,无理数的连分数都是成周期性的。

我们把 d \sqrt d d 写成连分数的形式: d = [ a 0 ; a 1 , a 2 , a 3 . . . . . , 2 a 0 ] \sqrt d=[a_0;a_1,a_2,a_3.....,2a_0] d =

Pell 方程是形如 $x^2-dy^2=1$ 的二元二次方程,其中 $d$ 是正整数,$x$ 和 $y$ 是正整数。求解 Pell 方程的一种经典方法是使用连分数。下面是求解 Pell 方程的步骤: 1. 首先,我们找到 Pell 方程的一个基本解 $(x_0,y_0)$,可以通过暴力枚举或使用其他方法来找到基本解。 2. 我们使用基本解 $(x_0,y_0)$ 来构造一个无限循环小数: $$\sqrt{d}=[a_0;\overline{a_1,a_2,\ldots,a_r,2a_0,\overline{a_1,a_2,\ldots,a_r,2a_0,\ldots}}]$$ 其中,$a_0=\lfloor\sqrt{d}\rfloor$,$a_i$ 是循环节中的数字。 3. 我们将这个无限循环小数表示为一个连分数: $$\sqrt{d}=a_0+\frac{1}{a_1+\frac{1}{a_2+\frac{1}{\ldots+\frac{1}{2a_0+\frac{1}{a_1+\frac{1}{a_2+\ldots}}}}}}$$ 4. 我们使用连分数的递归公式,计算出前 $n$ 个连分数的值: $$\begin{aligned}&h_0=a_0, &k_0=1 \\ &h_1=a_0a_1+1, &k_1=a_1 \\ &h_i=a_ih_{i-1}+h_{i-2}, &k_i=a_ik_{i-1}+k_{i-2}\end{aligned}$$ 其中,$h_i$ 和 $k_i$ 分别表示连分数的第 $i$ 个逼近分数的分子和分母。 5. 我们可以证明,对于任意 $n$,$(h_n,k_n)$ 都是 Pell 方程的解。这是由连分数的性质所决定的。 6. 最终,我们可以得到 Pell 方程的所有正整数解 $(x,y)$,它们可以通过 $(x,y)=(x_0h_n+dy_0k_n,x_0k_n+y_0h_n)$ 来计算。 需要注意的是,如果循环节长度为奇数,则最后一个连分数的分母应该是 $2a_0$,否则应该是 $1$。此外,如果循环节长度为 $0$,则 $a_1$ 应该等于 $2a_0$。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值