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

【扩欧应用】同余方程

与扩欧的联系

在同余方程的求解过程中,我们通常需要将方程转化为线性不定方程(Diophantine 方程)的形式,然后使用扩展欧几里得算法(Extended Euclidean Algorithm, EEA)求解。

在这里插入图片描述
同余方程是怎么转化为线性不定方程的?
请添加图片描述

Q:y 的符号变了,难道不会影响整个方程的解吗?
A:
首先这个问题就搞混了同余方程究竟在干什么,同余方程求解的是x的解集,y只是一个中间变量,中间变量的系数只是为了满足等式的合理性。
在这里插入图片描述

例题1

牛客网:【模板】同余方程
在这里插入图片描述

重点

x x x 的通解公式为: x = x 0 + b d ⋅ k x = x_0 + \frac{b}{d}\cdot k x=x0+dbk
这意味着 x x x 的解是以 b d \frac{b}{d} db 为周期的。
在这里插入图片描述

求最小正整数解对 x 0 x_0 x0 b d \frac{b}{d} db就保证了它是最小整数,再使用模加模确保结果为正数即可x = (x % b + b) % b;

代码

#include<iostream>using namespace std;typedef long long LL;LL exgcd(LL a,LL b,LL& x,LL& y)
{if(b == 0){x = 1, y = 0;return a;}LL x1,y1;LL d = exgcd(b,a%b,x1,y1);x = y1, y = x1 - a/b*y1;return d;
}int main()
{int T; cin >> T;while(T--){LL a,b; cin >> a >> b;LL x,y;LL d = exgcd(a,b,x,y);if(d == 1){x = (x % b + b) % b;cout << x << endl;}else{cout << -1 << endl;}}return 0;
}

例题2

洛谷:P1516 青蛙的约会
在这里插入图片描述

分析

请添加图片描述

代码

#include<iostream>using namespace std;typedef long long LL;LL exgcd(LL a, LL b, LL& x, LL& y)
{if(b == 0){x = 1, y = 0;return a;}LL x1,y1,d;d = exgcd(b, a%b, x1, y1);x = y1;y = x1 - a/b*y1;return d;
}int main()
{LL x,y,m,n,l;cin >> x >> y >> m >> n >> l;LL a = m - n, b = l, c = y - x;if(a < 0){a = -a, c = -c;}LL x0,y0;LL d = exgcd(a,b,x0,y0);if(c % d == 0){x0 = c / d * x0, y0 = c / d * y0;LL k1 = b / d;cout << (x0 % k1 + k1) % k1 << endl;}else{cout << "Impossible" << endl;}return 0;
} 
http://www.lryc.cn/news/576667.html

相关文章:

  • 概述-4-通用语法及分类
  • 领域驱动设计(DDD)【21】之值对象的优势
  • WebRTC(十二):DTLS
  • PowerBI 柱状图显示MoM销量环比示例,以及解决相同列值时设置柱子颜色的问题
  • 【转】PostgreSql的镜像地址
  • 一个简单测试Deepseek吞吐量的脚本,国内环境可跑
  • QTreeWidget 简单使用
  • web自动化测试常见函数
  • 西门子S7-200 SMART PLC:小型自动化领域的高效之选
  • 华为云鸿蒙应用入门级开发者认证 实验部分题目及操作步骤
  • 基于Uniapp+SpringBoot+Vue 的在线商城小程序
  • AI 在金融领域的落地实践:从智能风控到量化交易的技术突破与案例解析
  • 【Docker基础】Docker容器管理:docker stats及其参数详解
  • 使用asyncio构建高性能网络爬虫
  • 华为云Flexus+DeepSeek征文|基于Dify构建AI资讯语音播报工作流
  • Python pyserial库【串口通信】全面讲解
  • 从傅立叶级数到傅里叶变换和离散傅里叶变换及其逆变换:FS FT DFT IDFT
  • 华为云Flexus+DeepSeek征文 | 华为云ModelArts Studio实战指南:创建高效的AingDesk知识库问答助手
  • Java锁机制知识点
  • Java安装与使用教程
  • FPGA设计的上板调试
  • zookeeper Curator(2):Curator的节点操作
  • 移动端日志平台EMAS
  • 在C++中#pragma“可选预处理指令的作用“。
  • OpenCV图像噪点消除五大滤波方法
  • springboot+Vue逍遥大药房管理系统
  • Redis—主从复制
  • 多径信道下移动通信信号均衡技术研究与实现
  • 常用工具库
  • 领域驱动设计(DDD)【22】之限定建模技术