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

[原创] 算法挑战

[复制链接]
 楼主| 发表于 2023-11-26 06:34:19 来自手机 | 显示全部楼层


取了前20位显示
500,323秒
100,1秒

过几天用Julia编写一个直接编译执行的,和python解释执行的对比一下,看看执行时间如何。


=============wayne编辑,没必要上传图片,已经删除, 并补充更详细的答案
$(32243281478661245117275486119293967823731<<697226>>837906321426336396254777203086925844822511)/(30806209830441890018345910868023659832515<<697222>>000000000000000000000000000000000000000000)$

点评

nyy
关你屌事  发表于 2023-11-27 10:13
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-11-26 23:40:17 | 显示全部楼层
PARI/Gp代码,  跟前面的Mathematica代码的算法复杂度一样,$O(n*n*m)$, 但是运行速度好像比Mathematica慢不少.

  1. default(parisize, 1000000000)
  2. func(x,y) =
  3. {
  4.     y^(-1 - x)*x!;
  5. }

  6. nm(n,m) =
  7. {
  8.     g=0;
  9.     p = 0;
  10.     for(i=0,m-1,p+=1/i!*x^i);
  11.     p = 1-(1-y*p)^n;
  12.     for(j=1,n,cf=polcoef(p,j,y);
  13.         for(xx=0,j*(m-1),g+=polcoef(cf,xx,x)*func(xx,j)));
  14.     n*g
  15. }

  16. nmp(n,m) =
  17. {
  18.     g=0;
  19.     p = 0;
  20.     for(i=0,m-1,p+=1/i!*x^i);
  21.     p = 1-(1-y*p)^n
  22. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-11-27 09:03:33 来自手机 | 显示全部楼层
这个正常,这就是MMA平台的速度。

大致就是O(M*N*N)=c*M*N*N,不同平台不同实现代码大致有不同的c。

前面大致你的100和500的时间对比,以及我的时间对比,已经看出你的算法基本上也是N*N*M的复杂度了,只是实现代码和平台之间的c的差距。其实这个代码优化对c的影响也不小。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-11-27 10:05:59 | 显示全部楼层
挑战个啥?连注释都没有的代码,谁愿意看

点评

大家又没有求着你看  发表于 2023-11-27 10:08
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-21 20:54 , Processed in 0.029286 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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