我们知道丢番图方程,其中d是非完全平方正整数,那么此方程就是Pell方程,到目前为止对于它的最优求解方

法就是经典的连分数问题。可以看这里:http://blog.csdn.net/acdreamers/article/details/8529686

那么对于上述的Pell方程来说,它一定是有解的,而现在我们研究另一个丢番图方程:

,其中同样要求d是非完全平方正整数,对于这个方程,它就不一定有解了。

那么我们来研究如下一个结论:

,当并且为素数,那么一定有正整数解。

下面我们就来简略证明一下这个结论

证明:我们知道对于方程一定有正整数解,当然本文讨论中的所有都是非完全平方正整数。

假设是方程的最小正整数解,显然一奇一偶,假设

那么就得到矛盾,所以只能是

那么这样可以知道都是整数,并且都相差1,所以必有一奇一偶,所以

进一步有:,那么得到:

(还有一种情况不符合舍去)。那么就是方程的最小正整数解。我们可以发现这样的做法就是根据

方程的最小正整数解来求方程的最小正整数解,最后开个方就行了。

其实这种方法看起来很麻烦,我们作如下简化:

因为求方程的解是用连分数,那么我们也可以直接对方程用连分数求解。这里的还是满足

那么我们有如下结论:

如果,并且,那么方程的解可以这样求:

先把写成连分数的形式,那么我们只需要保存它的第一个循环节的部分,然后把它回带成的形式,那么这里的p和q就

是方程的最小正整数解。

其实直接套这里的模版即可:http://blog.csdn.net/acdreamers/article/details/9531793

那么,接下我们来看一个同余方程:,其中要求为奇素数,且,求x的最小正整数解。

结论:先求丢番图方程:的最小正整数解的值。然后得到,那么此时方程小于p的正整数解就分

别是,这两个数中的较小的那个就是上述方程的最小正整数解。

为什么是这样呢?我只作一点简单的描述,这个首先得从二次剩余说起。

二次剩余当中最重要的一些定理如下:

设m是正整数,若同余式,且,有解,那么a叫做模m的二次剩余,否则a叫做模m的二次非剩余。

欧拉判别条件给出了模为奇素数p有解判断条件:

(1)a是模奇素数p的二次剩余的充要条件是:

(2)a是模奇素数p的二次非剩余的充要条件是:

并且有:当a是模奇素数p的平方剩余时,同余式恰有两个小于p的正整数解。并且这两个解之和为p。

所以对于同余方程来说,注意,很明显-1一定是p的二次剩余,所以它有两个解。

然后上面解法的正确性我给出了打表证明:http://paste.ubuntu.com/5998778/

可以从结果中看出,第一个数x用连分数和暴力求解都是一样的,解在范围内恰好有两个,而第二个数没有用,因

为这两个解都是通过x得来的,上面的讲解都说了。

上面介绍的是连分数求方程的最小正整数解,其中且p是素数。

细心的读者会发现,当p很大时还是行不通,因为一是循环节太大,而是可能在求循环节时有数字超过整数范围的。

那么下面我将介绍我认为是解决这个问题的最好方法。把下面的n换为-1就是上面的方程了。

http://algo.ftiasch.com/tag/number-theory/

注意这里是在二次域上做计算的,w不是实数。

关于丢番图方程x^2-dy^2=-1相关推荐

  1. 线性丢番图方程 --算法竞赛专题解析(21):数论

    本系列文章将于2021年整理出版.前驱教材:<算法竞赛入门到进阶> 清华大学出版社 网购:京东 当当   作者签名书:点我 公众号同步:算法专辑    暑假福利:胡说三国 有建议请加QQ ...

  2. 佩尔方程及其在一类二元二次丢番图方程的推广

    文章目录 前言 标准型佩尔方程 性质 求最小解 暴力写法 连分数写法 例题 非标准型佩尔方程 额外证明 求解没有xy项的二元二次丢番图方程 例题 后记 前言 这是一篇欠了半年多的博客,期间笔者遇到了诸 ...

  3. Swift 中 insetBy(dx: CGFloat, dy: CGFloat) - CGRect 用法详解

    insetBy(dx: CGFloat, dy: CGFloat) -> CGRect 点击头文件进去 可以发现它是返回的一个CGRect insetBy方法是CGRect 的一个方法 dx后面 ...

  4. LintCode MySQL 1968. 查询首两个字母在 ‘Db‘ 和 ‘Dy‘ 之间的课程名称(REGEXP正则)

    文章目录 1. 题目 2. 解题 1. 题目 描述 请编写 SQL 语句,查询 courses 表中,课程名首两个字母在 'Db' 和 'Dy' 之间所有课程的名称 https://www.lintc ...

  5. 2.4 线性丢番图方程

      线性丢番图方程Linear Diophantine equation,名字听得非常高大上的.但是实际上很简单的,线性丢番图就是下面这种形式的方程: ax+by=cax+by=c ax+by=c   ...

  6. 知识点 - 线性丢番图方程 Linear Diophantine Equations

    知识点 - 线性丢番图方程 Linear Diophantine Equations 解决问题类型: 对于不定方程(a,b,c是给定参数,x,y为系数) ax+by=cax + by = c ax+b ...

  7. 扩展欧几里得算法 求解 丢番图方程

    丢番图方程: 有一个或者几个变量的整系数方程,它们的求解仅仅在整数范围内进行. a * x + b * y = c  ( 其中所有数均为整数, 已知 x, y, c )        例如:鸡兔同笼问 ...

  8. 同余原理与丢番图方程

    同余定理 定理: gcd(a, b) = gcd(b, a%b) 证明: 设a=kb+r,a = kb+r,a=kb+r,则r=a%b 假设d是(a,b)的一个公约数,则有d|a,d|b 而r=a−k ...

  9. 线性丢番图方程的C++实现

    阅读<密码学与网络安全>这本书,看到线性丢番图方程,就结合之前看到的一些算法,写了一个得到解的程序,加深理解. 也就把代码贴在这里: void exEuclidean(int a,int ...

最新文章

  1. 如何理解ScanDef的概念
  2. 并行计算及GPU简介
  3. 5月份升级鸿蒙系统的华为手机名单,鸿蒙OS前三批升级名单曝光,华为荣耀手机可升级,幸福来得太突然...
  4. python最新面试题_2018年最新Python面试题及答案
  5. vs android 压缩,Android Studio是否压缩classes.dex文件?
  6. 数字图像处理图像反转的实现_使用8086微处理器反转16位数字
  7. tcp和udp通讯协议
  8. mysql 存储过程 输出table_mysql 存储过程 没有结果输出。
  9. 设置crontab用vi打开编辑
  10. (转)比特币核心钱包(Bitcoin Core)入门使用教程
  11. python遗传算法(详解)
  12. 软件multisim的安装教程
  13. MATLAB去重并排序-unique
  14. Adobe全家桶2022版官方正版来啦~~
  15. html的px和屏幕什么关系,Html字体大小的设置单位PT与PX区别
  16. C# 实现对PPT插入、编辑、删除表格
  17. Python软件编程等级考试二级——20211205
  18. local variable xxx referenced before assignment
  19. java properties map_为什么java.util.Properties实现Map而不是Map
  20. Dotween简单安装设置

热门文章

  1. MyBatis的修改数据操作
  2. Redis与Zookeeper实现分布式锁区别
  3. 九九乘法表-使用转义字符调整格式
  4. SpringBoot https访问控制
  5. JVM-Java内存区域
  6. if-else运用及技巧(C# 参考)
  7. AWS Amplify Console:赋予应用程序快速部署的能力
  8. 关于使用fastjson统一序列化响应格式。
  9. 阿里专家分享:企业级大数据轻量云实践
  10. React 教程第六篇 —— 样式绑定