当前位置: 首页 > news >正文

python实现中国剩余定理

中国剩余定理又称孙子定理,是数论中一个重要定理。最早可见于我国的数学著作《孙子算经》卷下“物不知数”问题,原文如下:

有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?即,一个整数除以三余二,除以五余三,除以七余二,求这个整数。

把这题转化成现代数学问题:

求一个数x,该数除以3余2,除以5余3,除以7余2

把以上问题转化为一般方程的形式

根据中国剩余定理解如下

其中

python代码实现

n = int(input())
b = list(map(int, input().split()))  # 余数
m = list(map(int, input().split()))  # 模数
M = [0] * n
m_total = 1
x = 0  # 解,初始化为0
for i in range(n):m_total *= m[i]  # 计算m_totalfor i in range(n):M[i] = m_total // m[i]  # 计算M[i]for i in range(n):x += b[i] * M[i] * pow(M[i], -1, m[i])  # pow(M[i], -1, m[i])表示M[i]模m[i]的逆元
print(x % m_total)  # 该解有无数个,取一个模m_total的最小正整数解

第一行输入有几个方程

第二行输入每个方程的余数

第三行输入每个方程的模数

如一开始《孙子算经》的那题输入

3
2 3 2
3 5 7

结果为

相关文章:

  • 计算机网络原理基础
  • 专栏《数据结构与算法:初学者入门指南》序言
  • 详解各种LLM系列|LLaMA 1 模型架构、预训练、部署优化特点总结
  • 机器学习如何改变缺陷检测的格局?
  • 机器视觉系列之【硬件知识】-工业相机
  • 前端开发 :(二)HTML基础
  • thinkphp6入门(19)-- 中间件向控制器传参
  • DAC调节DCDC输出电压的电路方案分析
  • 突破编程_C++_面试(基础知识(8))
  • Python基础语法(内置Python, pycharm配置方式)
  • mmpose单机多卡训练问题
  • 黑马Java——集合进阶(List、Set、泛型、树)
  • Qt 数据库操作V1.0
  • 【链表】-Lc83-删除有序链表中的重复元素(快慢双指针,slow,fast)
  • 图解支付-金融级密钥管理系统:构建支付系统的安全基石
  • 2017-09-12 前端日报
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • CAP 一致性协议及应用解析
  • docker容器内的网络抓包
  • es的写入过程
  • jQuery(一)
  • js ES6 求数组的交集,并集,还有差集
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • node和express搭建代理服务器(源码)
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 入门级的git使用指北
  • 算法-插入排序
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #大学#套接字
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (二)springcloud实战之config配置中心
  • (二十三)Flask之高频面试点
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (算法设计与分析)第一章算法概述-习题
  • (原)本想说脏话,奈何已放下
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net core Swagger 过滤部分Api
  • .NET delegate 委托 、 Event 事件,接口回调
  • .Net 应用中使用dot trace进行性能诊断
  • .NET6实现破解Modbus poll点表配置文件
  • .NET微信公众号开发-2.0创建自定义菜单
  • .ui文件相关
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [ActionScript][AS3]小小笔记
  • [Android]Android开发入门之HelloWorld
  • [APIO2012] 派遣 dispatching