Python中iroot函数

在低加密指数攻击中常见到iroot()和iroot()[ ]函数,下面让我们来看看该函数的作用吧!

iroot(x,n):

对x开n次方,返回整数和布尔值(能被完全开方为整数,则返回True;不能,则返回False)

例如:

from gmpy2 import *
print(iroot(16,2))
print(iroot(27,3))
print(iroot(7,2))

运行结果如下:

(mpz(4), True)
(mpz(3), True)
(mpz(2), False)
 iroot(x,n)[0]:

返回开方得到数的整数部分(其实就是把上面运行结果当元组)

 iroot(x,n)[1]:

布尔值(能被完全开方为整数,则返回True或1;不能,则返回False或0)

例如:

from gmpy2 import *
print(iroot(15,2)[0])
print(iroot(15,2)[1])
print(iroot(16,2)[0])
print(iroot(16,2)[1])

运行结果:

3
False
4
True

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要画出一个系统的根轨迹,需要以下步骤: 1. 确定系统的传递函数,例如: ``` G(s) = K / (s^2 + 2ζωn s + ωn^2) ``` 其,`K` 是系统增益,`ζ` 是阻尼比,`ωn` 是自然频率。 2. 根据传递函数的特点,确定系统的极点和零点。 对于上面的传递函数,它的极点为: ``` s = -ζωn ± jωn sqrt(1-ζ^2) ``` 如果阻尼比 `ζ` 为 0,则极点是纯虚数,表示系统是无阻尼振荡的。 如果阻尼比 `ζ` 在 0 到 1 之间,则极点是共轭复数对,表示系统是有阻尼振荡的。 如果阻尼比 `ζ` 大于 1,则极点是实数,表示系统是过阻尼的。 3. 根据极点和零点的位置,画出根轨迹。 根轨迹是极点随着增益 `K` 的变化轨迹。根轨迹的起点和终点分别是零点和无穷远点。根轨迹从左侧进入到右侧,每经过一个极点就改变方向。当极点在实轴上时,根轨迹从极点两侧经过。当极点在虚轴上时,根轨迹在虚轴上对称。 下面是一个画根轨迹的 Python 代码示例: ```python import numpy as np import matplotlib.pyplot as plt # 传递函数 K = 1 ζ = 0.5 ωn = 1 num = [K] den = [1, 2*ζ*ωn, ωn**2] # 极点和零点 poles = np.roots(den) zeros = np.roots(num) # 计算根轨迹 k = np.linspace(0, 10, 1000) roots = np.zeros((len(poles), len(k)), dtype=np.complex128) for i in range(len(poles)): roots[i, :] = np.sqrt(poles[i]**2 + k**2) # 画图 fig, ax = plt.subplots() ax.plot(np.real(roots), np.imag(roots), 'b') ax.plot(np.real(poles), np.imag(poles), 'rx') ax.plot(np.real(zeros), np.imag(zeros), 'o') ax.axhline(y=0, color='k') ax.axvline(x=0, color='k') ax.set_aspect('equal', 'box') ax.set_xlabel('Real Axis') ax.set_ylabel('Imaginary Axis') ax.set_title('Root Locus') plt.show() ``` 这段代码可以画出上面传递函数的根轨迹。根据需要,可以调整传递函数的参数,或者修改代码的传递函数,来画出不同的根轨迹。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值