密码学之欧几里德拓展算法 python代码实现
欧几里德拓展算法的具体原理读者可以自行百度,其他很多文章都说的比较清楚。
目标:
计算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代码实现相关推荐
- 多元线性回归算法python实现_手写算法-Python代码推广多元线性回归
1.梯度下降-矩阵形式 上篇文章介绍了一元线性回归,包括Python实现和sklearn实现的实例.对比,以及一些问题点,详情可以看这里: 链接: 手写算法-Python代码实现一元线性回归 里面封装 ...
- 手写算法-python代码实现Ridge(L2正则项)回归
手写算法-python代码实现Ridge回归 Ridge简介 Ridge回归分析与python代码实现 方法一:梯度下降法求解Ridge回归参数 方法二:标准方程法实现Ridge回归 调用sklear ...
- 匈牙利算法python代码实现以及原理图解
匈牙利算法python代码实现以及原理图解 1.匈牙利算法python代码实现: 2.原理图解: 1.匈牙利算法python代码实现: scipy中有对应的接口scipy.optimize.linea ...
- 进化算法——蛙跳算法Python代码
进蛙跳算法Python代码 蛙跳算法原理 Python代码 参考文献 蛙跳算法原理 假设种群个数为 c h r o m n u m chromnum chromnum , 分组个数为 g r o u ...
- 数据挖掘学习——SOM网络聚类算法+python代码实现
目录 1.SOM简述 2.SOM训练过程 (1)初始化 (2)采样(抽取样本点) (3)竞争 (4)合作和适应(更新权重值) (5)重复 3.python 代码实现 (1)初始化 (2)计算样本点和权 ...
- apriori算法python代码_通俗易懂Apriori算法及Python实现
本篇分为三个部分: 一.算法背景 啤酒与尿布故事: 某超市为增加销售量,提取出了他们超市所有的销售记录进行分析.在对这些小票数据进行分析时,发现男性顾客在购买婴儿尿片时,通常会顺便搭配带打啤酒来犒劳自 ...
- python实现tomasulo算法_手写算法-python代码实现KNN
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 原理解析 KNN-全称K-Nearest Neighbor,最近邻算法,可以做分类任务,也可以做回归 ...
- knn算法python代码_K-最近邻分类算法(KNN)及python实现
一.引入 问题:确定绿色圆是属于红色三角形.还是蓝色正方形? KNN的思想: 从上图中我们可以看到,图中的数据集是良好的数据,即都打好了label,一类是蓝色的正方形,一类是红色的三角形,那个绿色的圆 ...
- 随机森林分类算法python代码_随机森林的原理及Python代码实现
原标题:随机森林的原理及Python代码实现 最近在做kaggle的时候,发现随机森林这个算法在分类问题上效果十分的好,大多数情况下效果远要比svm,log回归,knn等算法效果好.因此想琢磨琢磨这个 ...
最新文章
- leetcode算法题--单词拆分★
- TJA1050只能RX不能TX
- 把 mysql 整个加载进内存磁盘中_MySQL 缓冲池 是什么?
- BZOJ-1177 [Apio2009]Oil
- Linux 命令(70)—— size 命令
- system.js 替换 require.js
- Logisim实验一
- 智能门锁的千亿市场,为何迟迟不来?
- 饿汉式单例模式,懒汉式单例模式
- win10计算机删除用户密码,怎么删除win10电脑上的账户密码
- 英文密码特殊字符大全
- matlab 函数最大值位置,matlab中,两个自变量的函数怎么求最大值(急急急急!!1)...
- 6. LaTeX 参考文献的排版与引用
- 罗振宇4小时跨年演讲精华版:大环境里的7个行动策略
- 安装nginx,php8,nfs,oralce19c客户端
- 点集凸包算法python实现(二)
- Android WebView 的回退方法(goback) 遭遇重定向
- 终端便捷ssh(免密)连接
- 日常生活-不帮人投资理财
- 第五章: 项目范围管理