一:若gcd(a, b) = 1,则方程ax ≡ c (mod b)在[0, b-1]上有唯一解。

证明:

    存在性:存在整数k和l使a*k + b*l = gcd(a, b) = 1,即我们可以求出ax ≡ 1 (mod b)的解x0。当然,两边乘以c有a(cx0) ≡ c (mod b),所以有x = cx0就是ax ≡ c (mod b)的解。由于加上或减去若干倍b都是该方程的解,所以x在[0, b-1]上有解。

    唯一性:假设x1和x2都是[0, b-1]上的解,那么就有ax1 ≡ c (mod b),ax2 ≡ c (mod b),两式相减就有a(x1-x2) ≡ 0 (mod b),即a(x1-x2)可以被b整除。但gcd(a, b) = 1!所以(x1-x2)被b整除。又因x1和x2都在[0, b-1]上,所以x1-x2也在[0, b-1]上,所以只能说x1-x2=0了,因此x1=x2。

二:若gcd(a, b) = d,则方程ax ≡ c (mod b)在[0, b/d - 1]上有唯一解。

证明:

该方程等价于ax + by = c,如果有解,两边同除以d,就有a/d * x + b/d * y = c/d,即a/d * x ≡ c/d (mod b/d),显然gcd(a/d, b/d) = 1,所以由知道x在[0, b/d - 1]上有唯一解。所以ax + by = c的x在[0, b/d - 1]上有唯一解,即ax ≡ c (mod b)在[0, b/d - 1]上有唯一解,得证!

如果得到ax ≡ c (mod b)的某一特解X,那么我令r = b/gcd(a, b),可知x在[0, r-1]上有唯一解,所以x = (X % r + r) % r就可以求出最小非负整数解x了!X % r可能是负值,此时保持在[-(r-1), 0]内,正值则保持在[0, r-1]内。加上r就保持在[1, 2r - 1]内,所以再模一下r就在[0, r-1]内了。

同余问题怎么求解最小正整数解相关推荐

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

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

  2. 关于扩展欧几里得求最小正整数解

    关于扩展欧几里得求最小正整数解 //扩展欧几里得算法求最小正整数解 这里讲的是欧几里得,不是那个洗澡测浮力的阿基米德 . 什么是欧几里得算法: 扩展欧几里得算法是用来求解一类特定的不定方程的,形如ax ...

  3. 佩尔(Pell)方程最小正整数解

    佩尔方程最小正整数解

  4. 【欧拉猜想】是否有无穷多个不可约分的正整数解

    证明或否定: 不定方程 a^4 + b^4 + c^4 = d^4 (*)有正整数解. 形如 a^3+b^3=c^3 a^4+b^4+c^4=d^4 a^5+b^5+c^5+d^5=e^5 -- 这样 ...

  5. PTA 基础编程题目集 7-21 求特殊方程的正整数解 C语言

    PTA 基础编程题目集 7-21 求特殊方程的正整数解 C语言 输入样例1: 884 输出样例1: 10 28 20 22 输入样例2: 11 输出样例2: No Solution #include& ...

  6. 7-21 求特殊方程的正整数解 (C语言)

    7-21 求特殊方程的正整数解 (15 分)本题要求对任意给定的正整数N,求方程X​2​​+Y​2​​=N的全部正整数解. 输入格式: 输入在一行中给出正整数N(≤10000). 输出格式: 输出方程 ...

  7. 用Python解“求特殊方程得正整数解”题

    7-21 求特殊方程的正整数解 (15分) 本题要求对任意给定的正整数N,求方程X** 2+Y**2=N的全部正整数解. 输入格式: 输入在一行中给出正整数N(≤10000). 输出格式: 输出方程X ...

  8. 用C语言解“求特殊方程得正整数解”题

    7-21 求特殊方程的正整数解 (15分) 本题要求对任意给定的正整数N,求方程X** 2+Y**2=N的全部正整数解. 输入格式: 输入在一行中给出正整数N(≤10000). 输出格式: 输出方程X ...

  9. 最小正连续子序列和 问题

    2019独角兽企业重金招聘Python工程师标准>>> 给你一个数组a[1...n],求最小正连续子序列和 这个问题不能用dp解,因为不具有最优子结构.只能尝试其他方法. 常用定义, ...

最新文章

  1. 页面切换语言包使用session不用cookie
  2. 这款Web SSH工具超牛逼!
  3. JS的document.all函数使用 示例
  4. m_Orchestrate learning system---二十、如何写代码不容易犯错
  5. 纯CSS无hacks的跨游览器多列布局(转)
  6. IOS中设置全局变量
  7. 【转载保存】大型推荐系统架构图设计图
  8. Java 总结equals()方法
  9. 视觉SLAM十四讲学习笔记-第二讲-初识SLAM
  10. 如何根据项目进行PLC选型
  11. Win32子系统(csrss.exe,win32k.sys相关知识总结)
  12. MLA格式应该如何正确引用?
  13. 浅谈大学公寓智能用电管理系统方案
  14. VLAN tag格式
  15. matlab求系统根轨迹代码_第九讲? 根轨迹法
  16. oracle中查找某一个时间段内的数据
  17. oracle周数计算
  18. built a JNCIS LAB系列:Chapter 1 Communities v1.0
  19. 关于阅读论文的一些感想
  20. kill linux 苹果_Linux 下的KILL函数的用法

热门文章

  1. C语言 getchar用法
  2. 面向对象:希望我们能够耐得住寂寞,守得住繁华
  3. 耐住寂寞,守住繁华!
  4. 室内导航--机器视觉、ROS、Goseek(五)Goseek 虚拟室内环境准备
  5. 基于jQuery弹性展开收缩菜单插件gooey.js
  6. 一个测试过好用的anaconda版本emmm
  7. :郑州肉类商品交易所揭秘农村新骗局
  8. 华为企业云挂载盘解决方案
  9. 使用OpenSSL生成SSL证书的教程
  10. OpenCV视频写入详解_Python,视频保存0kb问题