yjr111 发表于 2011-11-4 21:48:08

这个。。。书柜里倒还有高数的书,不过。。。一看就想睡觉了!

yanshengjiang 发表于 2011-11-5 09:22:07

十几年前就牛玩vb了啊。我那会只想每天少吃个包子。然后存钱买个BB机。

初中毕业的人表示圆周率算不来。

cabinsummer 发表于 2011-11-5 19:49:42

本帖最后由 cabinsummer 于 2011-11-5 20:48 编辑

继续提供思路
求反正切函数
a的反正切d位
(defun arctan(a d / s n p k)
(setq s (ReverseNumber a d))
(setq n 1)
(setq p s)
(repeat (1+ (fix (/ (* 6 d (log 10))(log (* a a)))))
    (setq p (divide p a))
    (setq p (divide p a))
    (setq k (divide p (1+ (* 2 n))))
    (if (= (rem n 2) 1)
      (setq s (minuslist s k))
      (setq s (addlist s k))
    )
    (setq n (1+ n))
)
s
)

jicqj 发表于 2011-11-5 19:57:36

大学时候用c语言玩过圆周率 ,但是不能和大师比啊

cabinsummer 发表于 2011-11-5 20:09:04

最后封顶

计算600位
(setq d 101)
(strcat "3." (tostring (multi (minuslist (multi (arctan 5 d) 4)(arctan 239 d)) 4)))

输出结果
"3.141592 653589 793238 462643 383279 502884 197169 399375 105820 974944 592307 816406 286208 998628 034825 342117 067982 148086 513282 306647 093844 609550 582231 725359 408128 481117 450284 102701 938521 105559 644622 948954 930381 964428 810975 665933 446128 475648 233786 783165 271201 909145 648566 923460 348610 454326 648213 393607 260249 141273 724587 006606 315588 174881 520920 962829 254091 715364 367892 590360 011330 530548 820466 521384 146951 941511 609433 057270 365759 591953 092186 117381 932611 793105 118548 074462 379962 749567 351885 752724 891227 938183 011949 129833 673362 440656 643086 021394 946395 224737 190702 179860 943702 770539 217176 293176 752384 674818 467669 405132 "

cabinsummer 发表于 2011-11-5 21:11:12

本帖最后由 cabinsummer 于 2011-11-5 21:51 编辑

highflybir 发表于 2011-11-1 20:51 http://bbs.mjtd.com/static/image/common/back.gif
测试部分代码见附件:

前800位结果,高飞鸟的程序计算速度是我的2.3倍

我的程序试验结果
200位耗时0.125秒
400位耗时0.641秒
600位耗时1.775秒
800位耗时3.594秒
1000位耗时6.437秒
1200位耗时10.86秒
1400位耗时16.375秒
1600位耗时23.484秒
1800位耗时32.734秒
2000位耗时43.719秒
2200位耗时57.188秒
2400位耗时74.812秒
2600位耗时94.75秒
2800位耗时126.328秒
3000位耗时157.313秒
3200位耗时169.125秒
3400位耗时212.485秒

cabinsummer 发表于 2011-11-5 22:40:38

我那个程序还可以优化。减法计算和除法函数中,有很多数值为0的表项一直在参与计算,可以先计算出有效数字,在计算时剔除前面的0部分可以达到优化效果,有兴趣者可以尝试一下

GamIng 发表于 2011-11-7 14:14:30

什么也不说了,膜拜楼主中……

linshiyin2 发表于 2011-11-7 14:46:00

用64位的系统是不是可以更快些?这玩意不好搞

cabinsummer 发表于 2011-11-7 15:07:51

linshiyin2 发表于 2011-11-7 14:46 用64位的系统是不是可以更快些?这玩意不好搞

这是肯定的
页: 1 2 [3] 4 5
查看完整版本: [风之影][Lisp大挑战第一季]圆周率