解线性同余方程组

同余方程组——中国剩余定理の板子 ATP今天要上本学期最后一天文化课那必然要好好颓废辣 阅读详情
前几天纠结了差不多一个多小时,终于把线性同余方程组的求解纠结清楚了……果然还是写下来怕自己忘记……其实qzone不适合写这种文章……不过反正也只有自己看就无所谓了……
嗯……归纳一下
线性同余方程
ax≡b(mod n)是一个同余方程,表示ax mod n=b(or (b mod n)),求解这样一个x
存在这样的x当且仅当gcd(a,n)|b
那么所有的解可以表示为{x0+kn/d} (d=gcd(a,n))
在n的完系中,共有d个解
那么怎样找到这样一个x0呢
若这个方程有解,d=gcd(a,n),根据裴蜀定理,存在整数对(y,z),使得ay+nz=d①,这个整数对可以由扩展欧几里得算法求得
我们发现ax mod n=b 可以表示为ax+ny‘=b②,他与①式非常相像
实际上,由于d|b,把①式乘一个b/d,即可得到ay*b/d+nz*b/d=b③
②式右边=③式右边,∴x=y*b/d
因为y已知,所以求得了这样一个x0,得到了整个方程的解


线性同余方程组
//设c=m2-m1,d=gcd(b1,b2)
先讨论两个线性同余方程的情况
x≡b1(mod m1)①
x≡b2(mod m2)②
①式等价于x=b1*y+m1,②式等价于x=b2*z+m2
将两式联立,整理可得b1y-b2z=c
这又是二元一次补丁方程ax+by=c的形式,根据裴蜀定理,有解的条件是d|(m2-m1)
所以可用ext_gcd解出y',z'
得到b1y'+b2z'=d③
③式乘一个c/d,得
b1y'*c/d+b2z'*c/d=m2-m1④
x=y'*c/d*b1+m1,得解

显然y'有可能是负数,回代会造成x的大小无法控制,如果要得到最小非负整数解怎么办呢

二元一次不定方程ax+by=c的通解为
x=x0+kb y=y0-ka (gcd(a,b)=1)⑤
而这里的a=b1*c/d,b=b2*c/d,c=m2-m1
所以我们可以把y’的范围控制在(0,b2/d)内
为什么是b2/d而不是b2*c/d呢,因为gcd(a,b)=c≠1,按照⑤式的出来的解是通解的真子集,所以在枚举时要除以一个d
所以我们可以把y'做这样的处理y'=(y' mod (b2/d)+(b2/d)) mod (b2/d)
这样得到的y'是最小的非负整数y',从而可解得最小的x

当线性同余方程组不止两个式,可采用上述解法先求得两个方程的解xs
然后构造出新的方程x≡xs(mod lcm(m1,m2))(若x有大于xs的解,那么他至少大于等于lcm(m1,m2))
然后与第三个式子联立,递推求解

若m1,m2,m3……mn两两互素,即lcm(mi,mj)=mi*mj,此时可使用中国剩余定理

以上讨论的是x不带系数的方程组求解
若x带系数,即构成aix≡bi(mod mi)这种形式
有两种做法

一是两边同除以gcd(ai,mi),变成ai'x≡bi'(mod mi') gcd(ai',mi')=1
此时可求ai'关于mi'的逆元e,最后化得x≡bi'*e(mod mi')的形式

还有一种是联立两式时把系数化成一样,没试过,不知道行不行……

终于写完了……边写边又开始纠结……
别再只看K线了!聊聊“板块联动”和“热点轮动”的跟踪方法与工具(实战派分享) 本文深入解析了如何通过板块联动和热点轮动构建高效交易系统。从三维验证框架到主流工具配置,再到持续性热点的五大特征,实战派交易员分享了识别市场主线和预判轮动方向的高阶技巧,帮助投资者摆脱单纯依赖K线的局限,提升交易决策效率。 阅读详情

相关推荐

【教程】BM1684X-32边缘计算盒子 网络配置教程

BM1684X边缘计算盒子网络配置教程

ShiMetaPi的博客 714

线性同余方程和矩阵乘法

线性同余方程和矩阵乘法

m0_63729880的博客 583

Sublime Text4代码配色自定义方案

关于Sublime Text对于我的使用体验,只能说内置的代码主题真的都太low了,一点都不好看。所以接下来我分享一下我自定义代码配色。当然,大家也可以通过我给的中文翻译注释来自定义自己喜欢的颜色。废话不多说,直接上代码直接将代码复制粘贴到:Preferences > Customize Color Scheme 即可。},"globals":"foreground": "var(white)", // 前景色。

追求细节,成就完美 6026

线性同余方程组

线性同余方程 线性同余方程的形式:ax ≡ b (mod m),意思就是求解x的值使得 (a*x)%m=b%m 一、首先复习一下模运算,对于模运算,有以下等式成立: 假设a ≡ c (mod m)且b ≡ d(mod m),则: a + b ≡ c + d (mod m) a - b ≡ c - d (mod m) a * b ≡ c * d (mod m) 对于除法来说相对复杂一点 虽然2 ...

qq_43710979的博客 2435

Mamba-YOLO训练前必看:从环境配置到数据集调整的完整流程

本文详细介绍了Mamba-YOLO目标检测框架的完整训练流程,包括环境配置、数据集优化和模型调参。从硬件准备到依赖安装,再到数据增强和超参数调整,提供了一系列实用技巧和常见问题解决方案,帮助开发者高效训练Mamba-YOLO模型,避免常见踩坑记录。

tech5的博客 826

大疆 DJI Mobile SDK实战指南——从零构建Android示例开发环境

本文提供了一份详尽的DJI Mobile SDK Android开发环境搭建实战指南。文章手把手教你从注册开发者账号、获取App Key,到配置Android Studio、下载官方示例代码,最终成功运行DJI官方Android示例程序,帮助开发者快速入门无人机应用开发,避开常见编译与依赖问题。

weixin_29188043的博客 273

浅记线性同余方程(组)

线性同余方程的一般形式为:其中 $a, b, m$ 为整数,$m > 0$,$x$ 为未知数。

2508_94034604的博客 430

CentOS7 安装天气分型软件cost733过程详解

cost733是一款天气分型软件,其内置的一些算法可以帮助气象工作者进行天气类型划分等(我也是初学者,仅仅知道一些皮毛),但是网上找到的安装办法比较少,并且总会出现一些报错,试了一晚上,终于将安装办法调通了,希望可以帮助到大家

weixin_62573024的博客 3561

专题一:解线性同余方程组

链接1:https://blog.csdn.net/qiqijianglu/article/details/8039245 链接2:https://blog.csdn.net/tomorrowtodie/article/details/51865496 扩展欧几里得&&中国剩余定理 1,扩展欧几里得算法 已知(a,b),求一组(x,y),使得ax+by=gdc(a,b),且...

sdau20171989的博客 513

阿里云网络架构设计

背景 一个企业上云,首先要考虑整个网络的规划,涉及到云上和云下的网络规划,云上VPC的规划,云上不同地域VPC的互通,云上可用区的选择等等,所以一定要提前规划好整体的网络架构,现在阿里云云上的虚拟化网络解决方案已经完全转向 了云企业网,所以所有使用阿里云的企业客户多多少少都会使用阿里云的CEN 支撑自己的业务。 云企业网介绍 云企业网(Cloud Enterprise Network)是承载在阿里云提供的高性能、低延迟的私有全球网络上的一张高可用网络。 IDC专线接入CEN 首先面临的是云上和云下打通,那么

修电脑的码农 4838

图神经网络实战(8)——图注意力网络(Graph Attention Networks, GAT)

图注意力网络 (Graph Attention Networks, GAT) 是对图卷积网络 (Graph Convolutional Network, GCN) 的改进,提出了一种通过自注意力 (self-attention) 过程计算的加权因子,而不是使用静态的归一化系数。在本节中,我们介绍了 GAT 架构。通过从线性变换到多头注意力的四个主要步骤,了解了 GAT 的工作原理,并在 NumPy 中从零开始构建了 GAT 层。最后,将 GAT 模型应用于 Cora 和 CiteSeer 数据集。

盼小辉丶的博客 1万+

hdu 1573: X问题(线性同余方程组求正整数解的个数)

X问题 Problem Description 求在小于等于N的正整数中有多少个X满足:X mod a[0] = b[0], X mod a[1] = b[1], X mod a[2] = b[2], …, X mod a[i] = b[i], … (0   Input 输入数据的第一行为一个正整数T,表示有T组测试数据。每组测试数据的第一行为两个正整数N,M (0  

Hacker_vision 1598

手把手教你学 MATLAB 实战训练(6.5):基础实战实例

MATLAB 是一款强大的数学软件,广泛应用于工程计算、信号处理、控制系统设计、图像处理等领域。学习 MATLAB 不仅可以提高你的编程技能,还能帮助你解决实际的数学和工程问题。下面我将通过几个实战训练实例来教你如何使用 MATLAB。

xiaoheshang_123的博客 366

解线性同余方程组-模板

1 int n; 2 LL a[K],b[K]; 3 LL gcd(LL a,LL b) 4 { 5 return b==0?a:gcd(b,a%b); 6 } 7 void exgcd(LL a,LL b,LL &d,LL &x,LL &y) 8 { 9 if(b==0) 10 { 11 x...

weixin_30843605的博客 131

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

POJ 2891-trange Way to Express Integers(解线性同余方程组)

Strange Way to Express Integers Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 13819   Accepted: 4451 Description Elina is reading a book written by Ruji

Some. 715

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

POJ 2891 Strange Way to Express Integers 解一元线性同余方程组

点击打开链接 Strange Way to Express Integers Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 9042   Accepted: 2741 Description Elina is reading a book

代码改变世界,keep coding。 1156

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

poj 2891 Strange Way to Express Integers(解线性同余方程组) + hdu 1573

题意: 给k个正整数a1....ak,和k个正整数r1....rk,求满足 m mod ai = ri 的最小解m。 解析: 线性同余方程组的求解。不断合并方程。 其中有个证明:(转自 http://www.csdn123.com/itweb.php?url=aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9oZXdlaXlvdTE5OTMvYXJjaGl2ZS8yMD

渐近自由 564

hdu 1930 And Now, a Remainder from Our Sponsor 扩展欧几里得 解一元线性同余方程组

/** * url : http://acm.hdu.edu.cn/showproblem.php?pid=1930 * stratege : 解一元线性同余方程组, 扩展欧几里得 * Author: johnsondu * Status: johnsondu 0MS 284K 2207B C++ 2012-08-19 13:13:15 * Trick: There will be n

小do在努力 2038

POJ 2891 解线性同余方程组

大意: 给出k个模方程组:m mod ai = ri。求m的最小正值。如果不存在这样的m,那么输出-1. 思路: lcm是广义的,lcm(m1,m2)表示m1,m2序列的最小相等的值。 。。。。。。 算了,不会推导,直接用吧。 #include #include #include #define ll long long using namespace std; int n; ll a

智浩的博客 308

POJ 2891 解一元线性同余方程组

这题不是中国剩余定理 因为a1 a2..ak不互素 所以这是一道解一元线性同余方程组的题 把两个 等式化成一个一元线性同余方程 迭代一下得出结果 #include #include #include using namespace std; void exgcd(long long a,long long b,long long &d,long long &x,long long &y) {

韩小侠的专栏 已迁移至lssea.com 1135
上一篇: NOIp完挂,等待省选
下一篇: 关于分数规划
OrpineX
博客等级 码龄17年 16粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值