找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 198|回复: 0
打印 上一主题 下一主题

skill用蒙特卡罗法算圆周率(据说可以测性能)

[复制链接]

8

主题

468

帖子

2639

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2639
跳转到指定楼层
1#
发表于 2015-12-12 14:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 chrysalis 于 2015-12-14 08:39 编辑

来源于这里:
http://www.zhihu.com/question/27768721

提问的人表示,vba要570ms,而python要7秒。
我把vba的程序拿到我电脑上跑了下,大概410ms,我就估摸着用skill跑大概要多久,于是把这个算法移植到了skill上面。

代码:


  1. axlCmdRegister("test3" 'test3)

  2. defun(test3 ()
  3.         prog((l_time x_rand1 x_rand2 x_radius x_loop x_count x_rand1Opp x_rand2Opp f_pi)
  4.                 l_time = measureTime(
  5.                         x_radius = 100
  6.                         x_loop   = 2500000
  7.                         x_count  = 0
  8.                         for(i 1 x_loop
  9.                                 x_rand1 = random(x_radius)
  10.                                 x_rand2 = random(x_radius)
  11.                                                        
  12.                                 when((x_rand1 ** 2 + x_rand2 ** 2) <= (x_radius ** 2)
  13.                                         x_count = x_count + 1
  14.                                 );when
  15.                                                        
  16.                                 x_rand1Opp = x_radius - x_rand1
  17.                                 x_rand2Opp = x_radius - x_rand2
  18.                                 when((x_rand1Opp ** 2 + x_rand2Opp ** 2) <= (x_radius ** 2)
  19.                                         x_count = x_count + 1
  20.                                 );when
  21.                         );for
  22.                         f_pi = x_count / float(x_loop) * 2
  23.                 )
  24.                 printf("%f time:%f\n", f_pi nth(2 l_time))
  25.         );prog
  26. )






  27.        
复制代码

实际跑了一下,大概要3秒左右,比我想象中快(我以为会和python差不多),看来skill优化还是挺好的。(或许是Lisp的优越性?)
-----

在自己的电脑上跑了下python代码,要4.24秒。这么一看skill也没比python快到哪儿去……
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-24 14:59 , Processed in 0.054615 second(s), 33 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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