[英]Why does x**y%z doesn't work like pow(x, y, z) if y is negative?
我有 x、y 和 z 的这些值:
x = 1402709587326125487755933770599785022011554878478352915458023572822263891029946822919389113025226898265
y = -1653150172609560595889587008271025520100868674290063537844119789327420377094035018771640253912456367085
z = 5223965736281209292468836459168070829492174759961935620654434528517414151878323192140113927287012325803
pow(x,y,z)
返回6996453002252837241098775666312149651703153544682991747419581607713
(需要根据 RSA 分配)
但是x**y%z
应该做同样的事情,但是返回0.0
有人可以解释为什么吗? 我猜它与负y有关。
当你计算
x ** y % z
您分两步完成: (x ** y) % z
。 第一步
x ** y
返回远低于5.562684646268003E-309
的浮点分数(这是double
可能的最小幅度)。 所以, x ** y == 0.0
,最后, 0 % z == 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.