转载自:http://blog.sina.com.cn/s/blog_5d06e2390100ll92.html

佩尔方程实际上并不是佩尔提出的,而是费尔马提出,却被欧拉误记为佩尔提出,因此佩尔方程的名称沿用至今。身为不定方程的特殊一类,佩尔方程与连分数,二次型,代数论等等有着重要的联系,因而是数论中最经典的篇章之一。令 d 为非平方数的正整数,那么佩尔方程(Pell Equation)为:

* 连分数 *

在对佩尔方程进行深入了解之前,先来看看与该方程不可分离的连分数:

由于篇幅的原因,通常记为

其中 pn 和 qn 称为连分数之多项式,对于任意的a 均为一次式,它们的比值称为第 n 个渐进值渐进分数。对于渐进值来讲,有着递归关系式:

由数学归纳法可以得到关系式:

在华罗庚的《数论导引》中介绍了连分数一些性质定理,例如:有理数必可表示为有限连分数,无理数的连分数表示法唯一等等。

* 佩尔方程 *

注意到在上述多项式的递归表示中,具有决定多项式数值作用的关键的 an 并没有计算公式。此时回来看佩尔方程,根据数论中的定理:

定理1:对于正整数p、q ,如果有

则比值 p/q 必为 a 的一个渐进值。

因此可以得出推论:对于佩尔方程,其全部的根的集合为:

由递归方程式

可以得到

而判断二次不定方程有解的充分必要条件有下述定理表述:

定理2:二次不定方程

常有解,二次方程

不可解的充要条件为:

根据上述定理,由数学归纳法可以得到关系式:

这样就可以根据 p、q、P、Q 的递归关系式计算出根式形式的无理数的连分数展开。

* 循环连分数 *
    循环连分数指的是连分数表达式中存在循环节。根据数论中的基本定理:一个连分数为循环连分数的充分必要条件为此数是一有理系数二次不可化方程的根。因此根式形式的无理数均为循环连分数,且具有独特的性质:

通过循环表示,可以求解得到佩尔方程的最小整数解:

* 佩尔型方程 *

更加复杂的佩尔形式的方程:

假设 p、q 为上述方程的解,考虑其对应的佩尔方程极其基础解系:

则有

当 (p,q) 为包含所有基础解,这样所有的解集由下式递归构成

计算佩尔型方程的互不等价的基本解集主要依赖 PQA 算法和 Lagrange-Matthews-Mollin 算法。

PQA算法:

对佩尔方程做表

各项递归按照佩尔方程递归关系计算得到。其中各项初始值为: a 的初始值 a0 相当于佩尔方程中的 a1 ,p0 = a0 * Q0 - P0 ,q0 = 1 ,p1 = a1 * p0 + Q0 ,q1 = a1 。表的递归计算到 Q 的第一个周期或者 |Q|=1 。值得注意的是,此时 a 的递归方程式中,a0 不能先取整,因为若K是负数,则会导致错误的计算。

这样就可以进行佩尔型方程基本解集的计算:按照 K^2 和 D 的关系有:

CASE K^2<D

    P0 = 0 ,Q0 = 1 作为初始值带入 PQA 算法,当 Kn = K 时得到所有基本解集。

CASE K^2>D : LMM Algorithm

When f>0 , list m = K / f^2

For each m , find all z :-|m|/2 < z <= |m|/2,and z^2 = D modulo |m|

For each z , P0 = z ,Q0 = |m| as initial value in PQA algorithm:

If Qn+1 * sign(m) = 1 , then f*(Pn,Qn) is solution.

If Qn+1 * sign(m) = -1 , then f*(Pn,Qn) is solution of x^2 - Dy^2 = -K .

If x^2 - Dy^2 = -1 has primitive solution (u,v) , then f*(uPn+DvQn,vPn+uQn) is solution.

根据递归,该基本解集的每一个元素都可以产生无穷的解集,综合起来就是佩尔型方程的解集。

数论笔记 · 佩尔方程相关推荐

  1. 数论笔记 · 佩尔方程(连分数)

    http://blog.sina.com.cn/s/blog_5d06e2390100ll92.html 佩尔方程实际上并不是佩尔提出的,而是费尔马提出,却被欧拉误记为佩尔提出,因此佩尔方程的名称沿用 ...

  2. 数论概论读书笔记 41.连分数与佩尔方程

    连分数与佩尔方程 通过反复地将小数部分翻到分母上并将整数部分分离,我们可以对任何一个数形成连分数: 连分数在视觉上滑向右下方,将它们写成分数却要花费很多的笔墨和空间,由于所有的分子都是1,故我们要做的 ...

  3. 数论 —— 佩尔方程与连分数

    [概述] 连分数是一种特殊的繁分数,其形式为:  ,通常记为:,其中  和  称为连分数多项式,对于任意的 a 均为一次式,它们的比值称为第 n 个渐进值渐进分数. 佩尔(Pell)方程是一种不定二次 ...

  4. 【算法竞赛学习笔记】佩尔方程-数学提升计划

    title : 佩尔方程 date : 2021-10-31 tags : ACM,数学 author : Linno 佩尔方程 形如x2−dy2=1(d>1且d不为完全平方数)x^2-dy^2 ...

  5. 佩尔方程(超详细推导+例题讲解) 每日一遍,算法再见!

    这里写目录标题 佩尔方程 第一类佩尔方程 第一类佩尔方程例题讲解 第二类佩尔方程 佩尔方程 第一类佩尔方程 定义:形如x2−dy2=1x^2 - dy^2 = 1x2−dy2=1(d>1,且d不 ...

  6. 【HDU3292】数学_佩尔方程

    1.题目链接.说的是滥竽充数的故事,但是抽象出来之后就是这样一个问题:原来有x*x个人,走了一个,把这x*x-1划分成N个y*y,求满足的(x,y),但是因为数量很多,所以求第k大的x,并且输出x%8 ...

  7. C语言之基本算法26—佩尔方程求解

    //穷举法! /* ====================================================== 题目:求佩尔方程x*x-73*y*y=1的解. =========== ...

  8. POJ 1320 Street Numbers 解佩尔方程

    传送门 Street Numbers Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2529   Accepted: 140 ...

  9. c语言求佩尔方程的解设计思路,c语言版 佩尔方程求最小正整数解及第k解(矩阵快速幂)...

    佩尔方程讲解连接: 若一个丢番图方程具有以下的形式: 且 为正整数,则称此方程为佩尔方程(英文:Pell's equation 德文:Pellsche Gleichung) 若 是完全平方数,则这个方 ...

最新文章

  1. 区块链将重新定义世界
  2. LeetCode 90.子集 II 中等难度
  3. 【体验】感谢热心网友送的3D打印结构外壳,nodemcu外壳,3D打印wifi外壳
  4. 详解k8s deployment的滚动更新
  5. 给Tomcat打开远程debug端口
  6. 设计模式---读书笔记
  7. perl的几个for循环判断
  8. linux-tar命令详解
  9. [Leedcode][JAVA][第72题][动态规划]
  10. 漂亮的jQuery tab选项卡插件
  11. Qt文档阅读笔记-关于Qt Core的进一步认识
  12. 财务金融类网页及app界面设计模板
  13. 微课|中学生可以这样学Python(例8.22):冒泡法排序
  14. linux mysql 数据类型_MySQL的数据类型和建库策略(转)
  15. Linux交叉编译+粤嵌LCD实现三色图
  16. php1500,圆周率1500多位
  17. Eclipse用法和技巧五:生成说明文档2
  18. matlab空间球与空间圆求解,基于MATLAB的球管相贯空间曲线焊缝的数学模型
  19. block才会执行 mono_Monogb基本概念及基本操作
  20. 洛谷 U80510 甜蜜蜜的Seaway

热门文章

  1. 前端开发学习书籍整理,拥有此书,如有神助!
  2. 子集构造法和含有空串的子集构造法
  3. 圆弧方向判断方法和三点确定一个圆的计算方法
  4. 我学《数据结构与算法》 20155314刘子健
  5. 首次曝光:大厂都是这样过1024程序员节的,看的我都酸了
  6. 科技型中小企业有哪些?
  7. crontab 每两周的周三执行一次脚本
  8. 在正方体的某一个面上随机一个点——最白话,手把手教你做系列。
  9. jmx_exporter 配置详解
  10. 教培机构如何抢占招生市场