如果 y 为负,为什么 x**y%z 不像 pow(x, y, z) 那样工作?
Why doesn't x**y%z work like pow(x, y, z) if y is negative?
我有 x、y 和 z 的这些值:
x = 1402709587326125487755933770599785022011554878478352915458023572822263891029946822919389113025226898265
y = -1653150172609560595889587008271025520100868674290063537844119789327420377094035018771640253912456367085
z = 5223965736281209292468836459168070829492174759961935620654434528517414151878323192140113927287012325803
pow(x,y,z)
returns 6996453002252837241098775666312149651703153544682991747419581607713
(就像它需要根据 RSA 分配一样)
x**y%z
应该做同样的事情,但是 returns 0.0
有人可以解释为什么吗?我猜这与负 y 有关。
当你计算时
x ** y % z
您分 两个 步完成:(x ** y) % z
。第一步
x ** y
returns 浮点数 远远低于 5.562684646268003E-309
(即 double
的最小可能震级 )。所以,x ** y == 0.0
,最后,0 % z == 0
我有 x、y 和 z 的这些值:
x = 1402709587326125487755933770599785022011554878478352915458023572822263891029946822919389113025226898265
y = -1653150172609560595889587008271025520100868674290063537844119789327420377094035018771640253912456367085
z = 5223965736281209292468836459168070829492174759961935620654434528517414151878323192140113927287012325803
pow(x,y,z)
returns 6996453002252837241098775666312149651703153544682991747419581607713
(就像它需要根据 RSA 分配一样)
x**y%z
应该做同样的事情,但是 returns 0.0
有人可以解释为什么吗?我猜这与负 y 有关。
当你计算时
x ** y % z
您分 两个 步完成:(x ** y) % z
。第一步
x ** y
returns 浮点数 远远低于 5.562684646268003E-309
(即 double
的最小可能震级 )。所以,x ** y == 0.0
,最后,0 % z == 0