新用户注册入口 老用户登录入口

[转载][洛谷P1082]同余方程

文章作者:转载 更新时间:2023-02-18 16:22:02 阅读数量:1153
文章标签:同余方程最小正整数解线性方程贝祖定理C++exgcd函数
本文摘要:该题解主要介绍了如何利用扩展欧几里得算法求解同余方程ax ≡ 1 (mod b)中的最小正整数解x,并将其转化为线性方程形式。通过C++实现,首先调用exgcd函数计算a和b的最大公约数及其满足贝祖定理的一组解,然后对得到的x值进行适当处理以确保其为最小正整数。此外,还涉及了自定义输入处理函数read()的使用以及输出结果的调整。
转载文章

本篇文章为转载内容。原文链接:https://blog.csdn.net/weixin_30590285/article/details/97558051。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

传送门:同余方程

题意不说了 很水……学完扩欧做的板子题
把ax≡1(modb)转化成一般线性方程ax+by=1
然后扩欧

唯一要注意的是要找最小正整数解,所以搞出来x之后需要 乱搞处理一下
然后就没有了
这是一篇很水的题解……关于扩欧走这里:扩展欧几里得学习笔记

代码:

#include<bits/stdc++.h>
using namespace std;
inline int read(){int cnt=0,f=1;char c;c=getchar();while(!isdigit(c)){if(c=='-')f=-f;c=getchar();}while(isdigit(c)){cnt=cnt*10+c-'0';c=getchar();}return cnt*f;
}
int a,b,x,y;
void exgcd(int a,int b,int &x,int &y){if(b==0){x=1;y=0;return;}exgcd(b,a%b,x,y);int z=x;x=y;y=z-y*(a/b);
//    return d; 
}
int main(){a=read();b=read();exgcd(a,b,x,y);if(b<0)b=-b;if(x<=0){while(x<0)x+=b;printf("%d",x);}else{while(x>0)x-=b;x+=b; printf("%d",x);}return 0;
}

转载于:https://www.cnblogs.com/kma093/p/10087253.html

本篇文章为转载内容。原文链接:https://blog.csdn.net/weixin_30590285/article/details/97558051。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

相关阅读
文章标题:[转载][洛谷P1082]同余方程

更新时间:2023-02-18
[转载][洛谷P1082]同余方程
文章标题:[转载]webpack优化之HappyPack实战

更新时间:2023-08-07
[转载]webpack优化之HappyPack实战
文章标题:[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法

更新时间:2023-09-10
[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法
文章标题:[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo

更新时间:2024-03-11
[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo
文章标题:[转载]程序员也分三六九等?等级差异,一个看不起一个!

更新时间:2024-05-10
[转载]程序员也分三六九等?等级差异,一个看不起一个!
文章标题:[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集

更新时间:2024-01-12
[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集
名词解释
作为当前文章的名词解释,仅对当前文章有效。
同余方程在数论中,同余方程是指形如“ax ≡ b (mod m)”的等式,其中a、b和m是整数,并且m不为0。这意味着当两个整数相除时,它们具有相同的余数。例如,在本题解中提到的“ax ≡ 1 (mod b)”,表示寻找一个整数x,使得ax除以b的余数恒等于1。
扩展欧几里得算法扩展欧几里得算法是在经典欧几里得算法(用于求解两个非负整数的最大公约数)基础上的一种推广形式。该算法不仅能求出a和b的最大公约数gcd(a, b),还能同时找到一组整数解x和y,满足贝祖定理 ax + by = gcd(a, b)。在本文中,使用扩展欧几里得算法来解决同余方程,找到最小正整数解。
贝祖定理(Bézout's Identity)在数论中,贝祖定理指出,对于任何两个非零整数a和b,存在一对整数x和y,使得ax + by等于a和b的最大公约数。这个定理为扩展欧几里得算法提供了理论基础,通过该算法可以得到这样的整数对(x, y),并在解决同余方程问题时找到符合题目要求的解。
线性方程线性方程是代数学中最基本的一类方程,其一般形式为ax + by = c,其中a、b和c是常数,而x和y是未知数。在本题解中,将同余方程转化为线性方程ax + by = 1是为了利用扩展欧几里得算法进行求解,因为扩展欧几里得算法适用于解决此类线性组合形式的等式问题。
最小正整数解在特定数学问题或应用背景下,最小正整数解指的是满足某种条件的最小非负整数值。在处理同余方程时,需要找到满足方程的最小正整数解x,即在所有可能的解中,选择绝对值最小且为正的整数解。在本文讨论的题目中,通过调整扩展欧几里得算法得出的解,确保输出的x为符合条件的最小正整数。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在同余方程及扩展欧几里得算法的实际应用中,这一理论不仅仅局限于数学竞赛或编程题目的解答。近年来,在密码学和现代信息安全领域,此类算法扮演着至关重要的角色。例如,在RSA公钥加密体系中,就运用了模逆运算,这本质上就是通过扩展欧几里得算法求解同余方程的特例。
2021年,美国国家标准与技术研究院(NIST)宣布了下一代加密标准PQC(Post-Quantum Cryptography)的第四轮候选算法名单,其中多个方案如CRYSTALS-Kyber、NTRU Prime等都基于 lattice-based cryptography(格密码学),而这类密码体制的核心构建部分就涉及到了高效解决特定类型的同余方程问题。
此外,区块链技术中的智能合约验证机制也常利用同余方程与模运算进行安全高效的签名确认。以太坊2.0信标链采用的BLS签名方案,其背后就运用了扩展欧几里得算法来计算密钥对生成和签名验证过程中的关键参数。
因此,深入理解和熟练掌握同余方程以及扩展欧几里得算法不仅能帮助我们在学术研究和算法竞赛中取得优势,更是在未来信息技术安全、数据加密等领域保持竞争力的关键要素。随着量子计算机的发展,对经典密码学构成挑战的同时,也为这些基础数学工具的应用提供了更为广阔的研究空间和实际需求。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
uptime - 查看系统运行时间及负载信息。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
Kafka可靠性保障:持久化+分区+副本+acks确保消息不丢失 04-11 支持移动端和桌面设备的轻量级jQuery幻灯片插件 02-15 精品自适应个人博客前端框架网站模板 01-13 宽屏蓝色大气在线购物电子商务网站模板 12-15 全民健身俱乐部类企业前端CMS模板下载 12-05 Redis分布式锁:SETNX与RedLock实现机制及并发请求处理中的超时时间优化 10-15 纯js轻量级高性能点击元素动画特效插件 10-09 如何在jQuery GET加载动态内容时获取当前页面URL地址:利用$.get()与window.location.href 09-09 网上订花商城HTML网站模板 08-18 本次刷新还10个文章未展示,点击 更多查看。
Koa与Express在Node.js web开发框架中的中间件处理、异步I/O及轻量级设计对比,兼谈第三方模块支持与优雅错误处理 07-31 大气简约贫困山区衣物捐赠网站模板 07-26 往mysql指定字段里写入数据 06-05 [转载]Docker-部署运行MySQL容器 05-29 jQuery绚丽霓虹灯文字特效插件 04-09 响应式化妆美容香水类企业前端CMS模板下载 03-16 Tomcat内存泄漏问题在Web应用程序中的解决方案:Servlet上下文管理、全局变量引用与弱引用实践及监控工具应用 03-15 绿色左边栏图形表数据统计后台网站模板 03-05 [转载]4 款实用的网页设计开源工具【附下载】 02-12 [转载]Internal类 02-02 怎么判断mysql数据库存在 如何判断MySQL数据库是否存在 01-14
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"