2013-03-04 103 views
0

有没有什么办法可以看看gympy的源代码? 具体来说,gmpy2.is_primegmpy源代码

我尝试了各种链接

我不能在任何地方找到它。

我有gmpy2下载,并检查我的本地驱动器,但文件扩展名是.pyd。 当我打开它(记事本),以下是第几行我见 -

MZ  ÿÿ ¸  @         ð º ´ Í!¸LÍ!This program  cannot be run in DOS mode. 

其余的是乱码。

我想写一个非常快速的素数检查器,它是我迄今为止所遇到的最好的 任何人都可以告诉我如何获取源代码?或者可能链接到其他一些快速素数检查器的源代码(或讨论)?

+0

因为所有的文件,我可以在库中看到是.c或.h(并且因为它使得可以在c或C++中编写这样的lib而不是Python),我不认为你可以看看你想看到的Python代码,因为我认为没有任何 – kratenko 2013-03-04 13:39:08

+0

[gmpy](https://github.com/aleaxit/gmpy) ,[GMP](https://gmplib.org/repo/gmp/file/tip) – jfs 2017-04-13 13:29:53

回答

5

我维护gmpy和gmpy2。 @cartman和@DJV已经将您引导至源代码,但我会添加一些评论。

mpz_probab_prime_p做试验分解,然后进行Miller-Rabin检验的多次迭代。米勒 - 拉宾测试不能证明一个数字是素数,它只是非常擅长证明一个数字是复合数。如果你足够多次地重复这个测试,可能性就是这个数字是质数。有已知的情况,mpz_probab_prime_p报告只有12到15次迭代完成时,复合是素数。

更有趣的素数测试是BPSW测试。没有任何已知的复合材料被报道为主要材料,但它猜测它们存在。

gmpy2还包含几个素数算法,可用作完整测试的构建块。他们是基于代码中发现的:

http://sourceforge.net/projects/mpzlucas/

http://sourceforge.net/projects/mpzprp/

一些有用的链接:

http://www.trnicely.net/misc/bpsw.html

http://www.pseudoprime.com/pseudo.html

3

它映射到Pympz_is_prime C函数,有关该函数的源代码,请参见this link

+2

实际上这是'mpz_probab_prime_p'的包装,可以在GMP源代码'mpz/pprime_p.c'中找到 – dmg 2013-03-04 13:41:10