百度黑光 发表于 2011-6-11 22:09:26

手动算是非常的麻烦
如果用的是不麻烦的算法 必然误差很大
如果用的是麻烦的算法 运算过程容易出错

我有本书《说不尽的π》 大连的魔友如果想看的话 可以向我借

superacid 发表于 2011-6-13 10:54:47

回复 49# 的帖子

那么sin怎么算?

E.T. 发表于 2011-6-13 12:18:29

手动计算圆周率,貌似会令人抓狂。

lanjingling 发表于 2011-6-13 15:36:14

原帖由 superacid 于 2011-6-13 10:54 发表 http://bbs.mf8-china.com/images/common/back.gif
那么sin怎么算? 就是呀,三角函数手动能算不?

aubell 发表于 2011-6-14 20:04:08

回复 54# 的帖子

大概还是要用级数来计算了。

老熊 发表于 2011-6-23 17:22:19

回复 54# 的帖子

可以。。。。不断地减半相加,由sin30算出sin15,由sin15算出sin7.5,由sin7.5算出sin3.25,后用sin7.5和sin3.25,就可算出sin10.75.
----------------------------------------------------------------------
另:
以下我自己推导的:
在n*sin(180/n)中n越大,原式的值越趋近于π

龚永明魔方 发表于 2011-6-28 21:57:54

原帖由 aubell 于 2011-6-7 11:48 发表 http://bbs.mf8-china.com/images/common/back.gif
这一层
发一个收敛比较快,适合手动计算的方法
试试看

schuma 发表于 2011-6-29 03:16:58

我高三的时候算过。找了个收敛比较快的级数算的,其实pi的级数没有收敛很快的。算e就爽多了

aubell 发表于 2011-6-29 22:10:30

回复 57# 的帖子

如果过程中保留18位小数,其实只要计算60项不到就可以得到 3.14159265358979 了。

aubell 发表于 2011-6-29 22:39:40

这一层发自己写的程序

use Math::BigInt;

sub MY_PI{
my $n=shift;
my $first=Math::BigInt->new('2');
my $result=Math::BigInt->new('0');
my $up=1;
my $down=3;
my $npow= Math::BigInt->new('10'. '0' x $n);
$first->bmul($npow);
while($first->bcmp(0) > 0){
$result ->badd($first);
$first ->bmul($up++ );
$first ->bdiv($down++);
$down++;
}
return $result;
}

##计算到314位,最后几位有出入
print MY_PI(314);
页: 1 2 3 4 5 [6] 7 8 9 10 11
查看完整版本: 有人尝试过手动计算圆周率pi吗?