繁体   English   中英

如果 y 是负数,为什么 x**y%z 不像 pow(x, y, z) 那样工作?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM