魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
楼主: aubell
打印 上一主题 下一主题

有人尝试过手动计算圆周率pi吗? [复制链接]

Rank: 2

积分
282
帖子
249
精华
0
UID
1289657
性别
保密
31#
发表于 2011-6-9 12:19:45 |只看该作者

回复 27# 的帖子

谢谢。
按照这样算下去并不能知道圆周率小于3.1415927。
请问祖冲之是如何计算的?他说介于3.1415926和3.1415927之间。
还有边长公式怎么推导?

使用道具 举报

红魔

All Blue

Rank: 4

积分
1196
帖子
999
精华
2
UID
38845
性别
32#
发表于 2011-6-9 13:42:28 |只看该作者
应该是内切和外切求范围吧
公式D F2 U L2 U B2 U R2 U R' F2 R L U L' R' U R L' U L U L U2 L' U' L U2 L'
数列11121131221231321332223233311

使用道具 举报

Rank: 1

积分
11
帖子
10
精华
0
UID
71211
性别
保密
33#
发表于 2011-6-9 20:30:38 |只看该作者
手算的话割圆比级数快,但是要会手动开根号才行(新的数学课本已经不教手动开根号了)

使用道具 举报

Rank: 4

积分
1927
帖子
1059
精华
6
UID
17579
性别
保密

魔方理论探索者 论坛建设奖 六年元老

34#
发表于 2011-6-9 21:24:31 |只看该作者

这一层贴收集到的计算pi的一些程序

这层贴几个程序,计算PI;
包括BBP算法。
向算法的设计者和程序的设计者致敬。

又收集到有人用BrainF**K写的,计算PI的程序,而且可以计算的很远,
放在yapi中,连同一个BrainFK的解释器。

有空了在分析这个程序是怎么写的,牛人太牛了。

[ 本帖最后由 aubell 于 2011-7-18 19:12 编辑 ]

pi.rar

206.53 KB, 下载次数: 28

yapi.rar

2.69 KB, 下载次数: 0

Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

使用道具 举报

Rank: 4

积分
1927
帖子
1059
精华
6
UID
17579
性别
保密

魔方理论探索者 论坛建设奖 六年元老

35#
发表于 2011-6-10 00:11:54 |只看该作者

回复 31# 的帖子

先给个推导过程。
至于为什么小于3.1415927,这个问题很难。

[ 本帖最后由 aubell 于 2011-6-10 11:52 编辑 ]

split.JPG (100.52 KB, 下载次数: 84)

split.JPG

Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

使用道具 举报

Rank: 4

积分
1927
帖子
1059
精华
6
UID
17579
性别
保密

魔方理论探索者 论坛建设奖 六年元老

36#
发表于 2011-6-10 00:19:34 |只看该作者

回复 32# 的帖子

据说那是阿基米德的方法;刘徽和祖冲之只用内接圆就可以有上限。
Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

使用道具 举报

Rank: 1

积分
160
帖子
140
精华
0
UID
1294110

四年元老

37#
发表于 2011-6-10 12:03:28 |只看该作者
做圆内接正多边形,求其周长,与其半径比较即可

使用道具 举报

Rank: 4

积分
1927
帖子
1059
精华
6
UID
17579
性别
保密

魔方理论探索者 论坛建设奖 六年元老

38#
发表于 2011-6-10 12:44:27 |只看该作者

笔算开平方的方法

这一层发笔算开平方的方法(非原创)
一、
例 求316.4841的平方根.
第一步,先将被开方的数,从小数点位置向左右每隔两位用逗号,分段,如把数316.4841分段成3,16.48,41.
第二步,找出第一段数字的初商,使初商的平方不超过第一段数字,而初商加1的平方则大于第一段数字,本例中第一段数字为3,初商为1,因为12=1<3,而(1+1)2=4>3.
第三步,用第一段数字减去初商的平方,并移下第二段数字,组成第一余数,在本例中第一余数为216.
第四步,找出试商,使(20×初商+试商)×试商不超过第一余数,而【20×初商+(试商+1)】×(试商+1)则大于第一余数.
第五步,把第一余数减去(20×初商+试商)×试商,并移下第三段数字,组成第二余数,本例中试商为7,第二余数为2748.依此法继续做下去,直到移完所有的段数,若最后余数为零,则开方运算告结束.若余数永远不为零,则只能取某一精度的近似值.
第六步,定小数点位置,平方根小数点位置应与被开方数的小数点位置对齐.本例的算式如下:






二、
也可以用这种算法:
  假设被开放数为a,如果用sqrta)表示根号a 那么(sqrt(x)-sqrt(a/x))^2=0的根就是sqrta
  变形得
  sqrt(a)=x+a/x/2
所以你只需设置一个约等于(x+a/x/2 的初始值,代入上面公式,可以得到一个更加近似的值,再将它代入,就得到一个更加精确的值……依此方法,最后得到一个足够精度的(x+a/x/2的值。
  如:计算sqrt(5)
  设初值为2
  1)sqrt(5)=(2+5/2)/2=2.25
  2)sqrt(5)=(2.25+5/2.25)/2=2.236111
  3)sqrt(5)=(2.236111+5/2.236111)/2=2.236068
  这三步所得的结果和sqrt(5)相差已经小于0.001
(这个就是迭代法了。)




三、
二分法:
  设f(x)=x^2-a
那么sqrt(a)就是f(x)=0的根。
你可以先找两个正值m,n使f(m)<0,f(n)>0
根据函数的单调性,sqrt(a)就在区间(mn)间。
然后计算(mn/2,计算f((mn/2),如果它大于零,那么sqrt(a)就在区间(m,(mn/2)之间。
小于零,就在((mn/2n)之间,如果等于零,那么(mn/2当然就是sqrt(a)。这样重复几次,你可以把sqrt(a)存在的范围一步步缩小,在最后足够精确的区间内随便取一个值,它就约等于sqrt(a)
(这种大概是计算机用的)


[ 本帖最后由 aubell 于 2011-6-10 12:48 编辑 ]

square.gif (7.98 KB, 下载次数: 77)

square.gif

Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

使用道具 举报

Rank: 4

积分
1927
帖子
1059
精华
6
UID
17579
性别
保密

魔方理论探索者 论坛建设奖 六年元老

39#
发表于 2011-6-10 12:50:45 |只看该作者

回复 33# 的帖子

笔算开平方是不容易的,你想,一层根号下来,小数位数少掉一半;
要算到7位小数的PI,初始的第一个根号3应该算多少位小数呢??
Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

使用道具 举报

Rank: 1

积分
105
帖子
93
精华
0
UID
92021
性别
保密
40#
发表于 2011-6-10 18:39:39 |只看该作者
根号有竖式可以算 越来越麻烦

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2024-4-19 15:16

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部