我就爱作弊
发表于 2014-8-25 18:47:12
8、排列运算(注:因为Mathematica中没有内置函数,所以直接使用定义做连乘计算,自动化简后代码为:Pochhammer,经验证无误)
待计算式----------------------Hugecalc时间---------------------------Mathematica时间
P(12345,123)------------------0.001124------------------------------------0.
P(123456,1234)---------------0.001343------------------------------------0.
P(1234567,12345)------------0.011362------------------------------------0.
P(12345678,123456)---------0.124731------------------------------0.062500
P(123456789,1234567)------1.616693------------------------------1.078125
P(1234567890,12345678)---18.847495---------------------------19.687500
结论:在数字较小的排列计算上,Mathematica占优,但可以预见当数字很大时,HugeCalc占优。
补充内容 (2014-8-26 11:40):
Mathematica使用FactorialPower以后,时间从上到下分别为
0.
0.
0.
0.046875
1.078125
18.781250
我就爱作弊
发表于 2014-8-25 19:18:26
9、模幂运算
待计算式----------------------Hugecalc时间---------------------------Mathematica时间
1024位随机数---------------0.038399-------------------------------------0.
2048位随机数----------------0.190441------------------------------------0.
4096位随机数----------------1.383064-------------------------------0.046875
8192位随机数----------------10.921627-----------------------------0.359375
16384位随机数--------------22.173351------------------------------2.171875
32768位随机数--------------29.856301-----------------------------12.156250
65536位随机数-------------129.074144-----------------------------68.718750
结论:在模幂计算上,HugeCalc只能甘拜下风,特别是在数值较小的时候,Mathematica快了好几个数量级,即使数值变大也基本稳定在两倍速度,如果有可能的话可以好好改进一下。
cn8888
发表于 2014-8-25 19:19:27
不要太关注HugeCalc,因为你完全看不到代码,
有时间多玩玩mathematica,
HugeCalc毕竟功能很有限,
如果你想写一个程序超过HugeCalc,
我觉得还有研究价值,
否则你这个测试谁都会的,又有啥意思呢?
我就爱作弊
发表于 2014-8-25 19:20:50
cn8888 发表于 2014-8-25 19:19
不要太关注HugeCalc,因为你完全看不到代码,
有时间多玩玩mathematica,
HugeCalc毕竟功能很有限,
只是无聊做点事情而已
我就爱作弊
发表于 2014-8-25 19:30:55
今天先结束,明天会继续测评
我就爱作弊
发表于 2014-8-25 19:38:39
另外汇报一个疑似Bug,对两个很大的互质数求最大公倍数的时候,会耗费极长的时间(甚至不知道会不会算完),比如Fibonacci(10000000)和Fibonacci(10000001)。
cn8888
发表于 2014-8-26 08:53:33
我就爱作弊 发表于 2014-8-25 19:38
另外汇报一个疑似Bug,对两个很大的互质数求最大公倍数的时候,会耗费极长的时间(甚至不知道会不会算完) ...
我看到了曾经的自己----免费的HugeCalc测试员,
这测试员,谁都会干的活,
有啥意思呢?
地球人都会的!
他给你钱了吗?
HugeCalc有mathematica强大吗?
软件差个几秒钟又有啥意思?
对一般的用户根本感觉不到.
要么就去自己写程序,走出帮别人当测试员的误区,
测试员没啥技术含量,大家都会的。
cn8888
发表于 2014-8-26 08:57:13
写程序才能够增长你的智慧,至于测试程序的,谁都会,即使测试程序也应该是
自己给自己测试程序,而不应该给别人免费测试程序,
愿你早日走出误区,从你身上看到了曾经的我。
所以不得不说几句话。
听不听随便你自己
我就爱作弊
发表于 2014-8-26 12:02:24
10、最大公约数运算
待计算式------------------------------------------------Hugecalc时间---------------------------------------------Mathematica时间
GСD(Fi(10000),10000!)---------------------------------0.025301---------------------------------------------------------0.
GСD(Fi(100000),100000!)------------------------------1.586259----------------------------------------------------0.015625
GСD(Fi(1000000),1000000!)---------------------------8.192253----------------------------------------------------0.218750
GСD(Fi(10000000),10000000!)---------------------------失败-------------------------------------------------------4.296875
GСD(Fi(20000000),20000000!)---------------------------失败------------------------------------------------------10.671875
结论:没啥说的,应该重点优化。
另附:在Mathematica中,GСD使用HGСD 算法、Jebelean-Sorenson-WebG 加速GСD算法,加上一个由 Euclid 算法与一个基于2的幂循环排除算法组合而成的算法。
我就爱作弊
发表于 2014-8-26 12:20:08
11、对数运算(注:在Mathematica中,对Log结果进行取整来实现)
待计算式----------------------------------Hugecalc时间----------------------------------Mathematica时间
Log(123,10000!)-------------------------0.004769----------------------------------------------0.
Log(123,100000!)-----------------------0.104689-----------------------------------------------0.
Log(123,1000000!)----------------------0.690961----------------------------------------------0.
Log(123,10000000!)-------------------16.200168----------------------------------------------0.
Log(123,20000000!)-------------------34.898067----------------------------------------------0.
点评:这里由于Mathematica运算时间太短,小于\(\frac{1}{1000}\)秒(0.001秒)了,所以不显示了,当然可以使用多次计算取平均值的方法测出,不过也没什么必要,总之HugeCalc应该进行优化。