gmpy2 python 扩展库的用法笔记

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/(虽然看不懂官方文档)

  • 10
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值