找回密码
 欢迎注册
楼主: mathematica

[讨论] hugecalc判定下面这个整数,要多长时间?

[复制链接]
 楼主| 发表于 2017-5-21 13:21:41 | 显示全部楼层
http://primes.utm.edu/primes/sea ... 0&Comment=orial
  1. Clear["Global`*"];(*Clear all variables*)
  2. a=Times@@Table[Prime[n],{n,PrimePi[3229]}]+1;
  3. Timing[PrimeQ[a]]
复制代码

mathematica的时间是{0.124801, True}
hugecalc的时间是1.006113
结论是小素数mathematica快的倍数大些
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2017-5-21 13:23:36 | 显示全部楼层
  1. Clear["Global`*"];(*Clear all variables*)
  2. a=Times@@Table[Prime[n],{n,PrimePi[4787]}]+1;
  3. Timing[PrimeQ[a]]
复制代码

mathematica的时间是{0.327602, True}
hugecalc的时间是3.023432秒
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2017-5-21 13:26:05 | 显示全部楼层
  1. Clear["Global`*"];(*Clear all variables*)
  2. a=Times@@Table[Prime[n],{n,PrimePi[11549]}]+1;
  3. Timing[PrimeQ[a]]
复制代码

mathematica的时间是
{3.08882, True}
hugecalc的时间是
39.206494
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-5-21 18:00:46 | 显示全部楼层
我现在正在动车上。

感谢楼主的测试,至少说明大整数的素性检测还不是那么不堪,我的算法里对小整数的优化关注不足。
另,请切换到十六进制下测试,可能会比十进制下速度快一点。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2017-5-22 08:21:12 | 显示全部楼层
gxqcn 发表于 2017-5-21 18:00
我现在正在动车上。

感谢楼主的测试,至少说明大整数的素性检测还不是那么不堪,我的算法里对小整数的优 ...

同样是这个数
a=Times@@Table[Prime[n],{n,PrimePi[11549]}]+1;

换成16进制后,时间变多了,所以肯定不是16进制的原因
QQ截图20170522081835.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2017-5-22 08:31:40 | 显示全部楼层
gxqcn 发表于 2017-5-21 18:00
我现在正在动车上。

感谢楼主的测试,至少说明大整数的素性检测还不是那么不堪,我的算法里对小整数的优 ...

http://primes.utm.edu/primes/sea ... 0&Comment=orial

这个网页上大素数多的是,自己可以写个程序慢慢测试,
我土鳖,只会用mathematica批量得出时间,不会用hugecalc批量
你可以用hugecalc批量
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-5-24 16:33:39 | 显示全部楼层
mathematica 是多人多钱且持续性研发,楼主非要纠结与和单人业余开发且长时间未更新的hugecalc一分高下是有失公平的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2017-5-25 08:56:18 | 显示全部楼层
winxos 发表于 2017-5-24 16:33
mathematica 是多人多钱且持续性研发,楼主非要纠结与和单人业余开发且长时间未更新的hugecalc一分高下是有 ...

相当于免费给他反馈一下,只是比较素数判定这个功能而已
当然了,hugecalc肯定比不上mathematica,
要不然谁还去用mathematica?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-5-25 09:24:14 | 显示全部楼层
mathematica 发表于 2017-5-25 08:56
相当于免费给他反馈一下,只是比较素数判定这个功能而已
当然了,hugecalc肯定比不上mathematica,
要不然 ...


其实,我想说,我总感觉mathematica兄的语言逻辑有点不按常理出牌.  针对这三行话, 我来说说我的阅读体验.
第一行:  正常. 我是指 阅读上的OK.
第二行:  话理比较粗糙,经不起推敲.  问题出在要比什么?这个很关键. 一个是库,一个是软件,一个是32位的,一个是64位的,一个是十年前开发的,业余爱好. 一个是经过30年迭代开发的商业软件.我猜测最靠谱的思路是比算法. 那问题就多了.即便是同一个算法原理,测评出来的也会有较大的差别.
第三行: 绝大部分人用Mathematica的初衷可能都是懒,图省心的缘故, 而且这些人往往都是非专业的计算机程序员. 可不是因为通过亲自对比发现Mathematica性能卓越才用它的. 如果真的是因为这个原因使用Mathematica了,那这种人肯定是算法和计算机程序的老手, 于是此人就有足够的知识储备自己开发一个, 所以,发现没,这里面出现了矛盾的关系. 所以, 我要表达的是matheamtica兄在语言表达上从第一第二行跳跃到第三行是很让我琢磨不透的思维逻辑.

点评

那你反馈的应该是属于软件层面的feature,而不是算法层面的问题了. 比如郭老大的HugeCalc因为不支持64位,因为没有多线程支持,因为没有使用到最新的X86 指令优化, 所以导致 他的素数判定的性能 弱于Mathematica  发表于 2017-5-25 09:42
我没有要这两个软件一分高下,我只是在素数判定这个上,给他一个免费的反馈,仅此而已  发表于 2017-5-25 09:34
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-9-16 13:36:53 | 显示全部楼层
wayne 发表于 2017-5-25 09:24
其实,我想说,我总感觉mathematica兄的语言逻辑有点不按常理出牌.  针对这三行话, 我来说说我的阅读体验 ...


我今天第一次知道HugeCalc软件,试了一下,简直让我折服!~

我自己网上抄了段代码(C语言),计算99999^99999,结果花掉20多秒钟。。。

我用HugeCalc计算了一下(999999^999999)注意,是6个9,比我的C代码多一个9,结果是,0.2秒,完全不知是如何实现的。。。

当然,Mathematica软件,这个庞然大物,看到就不想下载了。。。

真心希望HugeCalc的作者坚持更新下去。。。

点评

我会坚持下去的,把它当作一种责任。现在仅是暂停,待时机成熟,会全力以赴的。  发表于 2017-9-17 09:32

评分

参与人数 1金币 +20 收起 理由
gxqcn + 20 首帖奖励,欢迎常来。

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-18 19:25 , Processed in 0.064005 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表