0

当我输入命令时:

战俘(9,999999);

我获得以下内容:

Bad argument 1 to pow(). Exponent too large.
Unknown program: pow(Gmp.mpz(999999))
-:1: 9->pow(@0=Gmp.mpz(999999))
HilfeInput:1: HilfeInput()->___HilfeWrapper()

有人可以告诉我如何有效地实现库 GMP.mpz,例如,计算 9 ^999999 或 500000 的阶乘。在此非常感谢您的帮助。

此致

4

2 回答 2

0

自从我使用派克以来已经 15 年了,所以这只是可能的答案:

1)也许您需要使用 bignum 支持编译的 pike:https ://pike.lysator.liu.se/docs/man/chapter_3.html#1然后您可以将
pow() 与任意整数一起使用。

2)或者也许可以使用数学模块。

于 2018-06-16T09:52:15.897 回答
0

看起来这个限制在 Pike 源代码中是硬编码的:static void mpzmod_pow(INT32 args)src/modules/Gmp/mpz_glue.c. 可从此处获得的来源: 派克来源

于 2018-06-29T19:59:49.953 回答