欧几里德拓展算法的具体原理读者可以自行百度,其他很多文章都说的比较清楚。

目标:

计算gca(m,n)

计算gca(m,n)=m*x+n*y中的x,y

思路:

本实验采用python语言进行编程,首先编写了oujilide函数。其中变量m,n为所求的两个数的最大公因子,将m,n赋值给a,b两个变量(由于后面a, b的值会发生变动),之后对a,b的值进行大小比较,使得a>=b。然后计算出a mod b的余数,并为x,y,x0,y0赋初值,对后面计算x, y做准备。之后采用while循环语句,并将r=0作为循环结束的条件,利用x1 = x - q*x0,y1 = y - q*y0对x,y进行计算,从而得出gcd(m,n)和x,y。

def oujilide(m, n):a = mb = nif abs(a) < abs(b):temp = aa = bb = tempr = a % bx, y = 1, 0x0, y0 = 0, 1while r != 0:q = a // bx1 = x - q*x0y1 = y - q*y0x = x0y = y0x0 = x1y0 = y1a = bb = rr = a % bprint('gcd('+str(m)+','+str(n)+')='+str(b))print(str(b)+'='+str(m)+'*'+str(x0)+'+'+str(n)+'*'+str(y0))print('计算两个数的最大公因子')
a = int(input('第一个数:'))
b = int(input('第二个数:'))
oujilide(a, b)

实验结果截图:

两个数互素:

两个数不互素:

密码学之欧几里德拓展算法 python代码实现相关推荐

  1. 多元线性回归算法python实现_手写算法-Python代码推广多元线性回归

    1.梯度下降-矩阵形式 上篇文章介绍了一元线性回归,包括Python实现和sklearn实现的实例.对比,以及一些问题点,详情可以看这里: 链接: 手写算法-Python代码实现一元线性回归 里面封装 ...

  2. 手写算法-python代码实现Ridge(L2正则项)回归

    手写算法-python代码实现Ridge回归 Ridge简介 Ridge回归分析与python代码实现 方法一:梯度下降法求解Ridge回归参数 方法二:标准方程法实现Ridge回归 调用sklear ...

  3. 匈牙利算法python代码实现以及原理图解

    匈牙利算法python代码实现以及原理图解 1.匈牙利算法python代码实现: 2.原理图解: 1.匈牙利算法python代码实现: scipy中有对应的接口scipy.optimize.linea ...

  4. 进化算法——蛙跳算法Python代码

    进蛙跳算法Python代码 蛙跳算法原理 Python代码 参考文献 蛙跳算法原理 假设种群个数为 c h r o m n u m chromnum chromnum , 分组个数为 g r o u ...

  5. 数据挖掘学习——SOM网络聚类算法+python代码实现

    目录 1.SOM简述 2.SOM训练过程 (1)初始化 (2)采样(抽取样本点) (3)竞争 (4)合作和适应(更新权重值) (5)重复 3.python 代码实现 (1)初始化 (2)计算样本点和权 ...

  6. apriori算法python代码_通俗易懂Apriori算法及Python实现

    本篇分为三个部分: 一.算法背景 啤酒与尿布故事: 某超市为增加销售量,提取出了他们超市所有的销售记录进行分析.在对这些小票数据进行分析时,发现男性顾客在购买婴儿尿片时,通常会顺便搭配带打啤酒来犒劳自 ...

  7. python实现tomasulo算法_手写算法-python代码实现KNN

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 原理解析 KNN-全称K-Nearest Neighbor,最近邻算法,可以做分类任务,也可以做回归 ...

  8. knn算法python代码_K-最近邻分类算法(KNN)及python实现

    一.引入 问题:确定绿色圆是属于红色三角形.还是蓝色正方形? KNN的思想: 从上图中我们可以看到,图中的数据集是良好的数据,即都打好了label,一类是蓝色的正方形,一类是红色的三角形,那个绿色的圆 ...

  9. 随机森林分类算法python代码_随机森林的原理及Python代码实现

    原标题:随机森林的原理及Python代码实现 最近在做kaggle的时候,发现随机森林这个算法在分类问题上效果十分的好,大多数情况下效果远要比svm,log回归,knn等算法效果好.因此想琢磨琢磨这个 ...

最新文章

  1. leetcode算法题--单词拆分★
  2. TJA1050只能RX不能TX
  3. 把 mysql 整个加载进内存磁盘中_MySQL 缓冲池 是什么?
  4. BZOJ-1177 [Apio2009]Oil
  5. Linux 命令(70)—— size 命令
  6. system.js 替换 require.js
  7. Logisim实验一
  8. 智能门锁的千亿市场,为何迟迟不来?
  9. 饿汉式单例模式,懒汉式单例模式
  10. win10计算机删除用户密码,怎么删除win10电脑上的账户密码
  11. 英文密码特殊字符大全
  12. matlab 函数最大值位置,matlab中,两个自变量的函数怎么求最大值(急急急急!!1)...
  13. 6. LaTeX 参考文献的排版与引用
  14. 罗振宇4小时跨年演讲精华版:大环境里的7个行动策略
  15. 安装nginx,php8,nfs,oralce19c客户端
  16. 点集凸包算法python实现(二)
  17. Android WebView 的回退方法(goback) 遭遇重定向
  18. 终端便捷ssh(免密)连接
  19. 日常生活-不帮人投资理财
  20. 第五章: 项目范围管理

热门文章

  1. 单片机我们都了解,但是单片机应用系统的开发流程你们知道吗
  2. python文件输出exe文件反汇编_【python】控制台python代码导出成exe文件
  3. 对称加密、非对称加密、数字签名
  4. mysql8 mgr一主多从部署
  5. 闪游浏览器0.45发布下载:超多细节改进,更稳更强
  6. 多个站点同时抓取!怎么做到的?
  7. HDU 1174 爆头 几何
  8. Google浏览器搜索技巧(提高效率)
  9. Adobe Photoshop CS3绿色精简版(26M)
  10. CentOS7.4安装部署openstack[Liberty版](1)