拓展欧几里得学习小记
来源:互联网 发布:js设置innerhtml 编辑:程序博客网 时间:2024/05/16 01:18
前言
今天的比赛第一题就是解线性同余方程,大概思路是有了,就是在求非质数模的时候卡住了。这时我才开始后悔之前没有好好学学拓展
算法功能
拓展欧几里得算法(
运用这个丢番图方程能有效解决许多数论问题。
算法解析
预备知识
欧几里得算法(
算法步骤
和普通的欧几里得算法一样,拓展欧几里得算法先通过辗转相除法求得
考虑在递归回退过程中,我们已经知道了
由此可得方程
如普通欧几里得算法,当
时间复杂度与普通欧几里得算法一样
详细可见代码实现。
代码实现
void extended_gcd(int &a,int &b){ if (!b) { gcd=a; a=1; b=0; return; } int a2=b,b2=a%b; extended_gcd(a2,b2); b=a2-(a/b)*b2; a=b2;}
算法用途
求解模意义下乘法逆元
显然,求
然后
这种求逆元算法比费马小定理求逆元运用范围更广,因为
解不定方程
证明:对于不定方程ax+by=c ,可以证明方程有整数解当且仅当gcd(a,b)|c 。
由裴蜀定理,方程
由于
如果方程有实数解(在实数范围内成立),那么用
证毕。
求其中一组解
前提条件:该不定方程存在整数解。
我们先求
设
1 0
- 拓展欧几里得学习小记
- 【类欧几里得学习小记】
- [学习笔记] 拓展欧几里得算法
- 拓展欧几里得
- 拓展欧几里得
- 拓展欧几里得
- 拓展欧几里得
- 拓展欧几里得
- 拓展欧几里得
- 拓展欧几里得
- 拓展欧几里得
- 欧几里得算法+拓展欧几里得算法
- 从欧几里得到拓展欧几里得
- gcd,欧几里得,拓展欧几里得&NOIP2012d2t1
- 欧几里得(gcd) + 拓展欧几里得(ext_gxd)
- 欧几里得算法&&拓展欧几里得算法
- 欧几里得算法&&拓展欧几里得算法
- 基础数论学习笔记-----------拓展欧几里得算法【Extended Euclidean Algorithm】
- 单例模式常用方法
- 网站内部优化的六个基本要点
- 导入excel数据,导出数据到excel
- Map, Map and flatMap in Scala
- 冒泡排序算法
- 拓展欧几里得学习小记
- nc后台两张单同名字字段数据交换
- [POJ2104] K-th Number/[POJ2761] Feed the dogs
- iOS 以byte数组作为密钥的3des加密
- hdu1757
- HDU 2255 奔小康赚大钱 POJ 2195 Going Home 最大权完美匹配 KM算法
- 在Eclipse中安装Maven插件以及创建Maven项目
- Java学习个人笔记---Java数组内存
- button放在form表单导致点击按钮触发的ajax报错问题