ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

gmpy2 python 扩展库的用法笔记

2021-06-12 17:57:52  阅读:265  来源: 互联网

标签:初始化 gmpy2 gcd 高精度 python 用法 e1 e2


gmpy2 python 扩展库的用法笔记

1. 初始化一个高精度的数据类型

	a. a=gmpy2.mpz(x) 可以为变量a赋予一个高精度的大整数(长度可达50位)
	b. a=gmpy2.mpq(x) 可以为变量a初始化一个高精度的分数
	c. a=gmpy2.mpfr(x) 可以为a初始化一个高精度的浮点数
	d. a=gmpy2.mpc(x) 可以为a初始化一个高精度的复数

2. 其它的常用语法

	a. 模幂运算:gmpy2.powmod(a,n,p)   #对于给定的整数p,n,a,计算aⁿ mod p
	b. 对x开n次方根:gmpy2.iroot(x,n)
	c. 欧几里得算法:gmpy2.gcd(a,b)#求得a,b的最大公约数
			       gmpy2.lcm(a,b)#求得最小公倍数
	d. 扩展欧几里得:gmpy2.gcdext(e1,e2)#求式子e1*x+e2*y=gcd(e1,e2)。在RSA加密算法中利用该公式来求e的逆元d,由于实际上公钥e的选取需要保证gcd(e,ψ(n))=1,所以在这种情况下式子的右边就是1,且通常用下面这个公式来求逆元。
	e. 模逆运算:gmpy2.invert(a,c)#对a,求b,使得a*b=1(mod c)
	f. 检测
		i. 素数检测:gmpy2.is_prime()
		ii. 奇数检测:gmpy2.is_even()
		iii. 偶数检测:gmpy2.is_odd()

gmpy2扩展库官方文档地址:https://gmpy2.readthedocs.io/en/latest/(虽然看不懂官方文档)

标签:初始化,gmpy2,gcd,高精度,python,用法,e1,e2
来源: https://blog.csdn.net/m0_52842062/article/details/117852175

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有