当前位置: 我的世界 > 游戏攻略 > 正文

我的世界中精确计算圆周率的各种方法

小编:铅笔时间:2015-01-22 10:30回到游戏园首页

  今天游戏园的小编就为大家解析一下我的世界中精确计算圆周率的各种方法都有什么,希望此篇文章能帮到大家!

  一,通过概率求π

  这里是之前那个帖子的机器还有我用随机原理做的类似机器的分析,鉴于可能会引起争端,我就把作者的名字放到折叠里面了。。。强调一点,用随机求π是无效率可言的,所以推荐阅读下一种方法。

  注意:字多图少。

  其实,确定一点,他本身的算法是正确的,从数学的角度上来说,得到的结果的确是会趋近于π,但是,有一点,这一点我想肯定是所有的高中数学老师都不断强调的东西,那么是什么呢?答案是,定义域。

  不断生成3个1-18内的随机数a,b,c

  这是帖子里的原话,我们可以看到,他的想法是取a,b,c∈[1,18],这三个变量的定义域是[1,18],就是说,abc这三个数可以取1到18包括首尾的任何数,然而,由于在minecraft里,

  他采用的随机数生成器是发射器+命令方块的组合,这样就决定了,这个随机器只能取到区间[1,18]里的所有整数,那么定义域就发生了小小的变化,现在的情况是a,b,c∈[1,18]∩Z,Z为整数集。

  这样的话,整个的算法的输出结果就会发生极大的改变,现在abc都有18种可能,而总共的可能性也减为了18^3=5832种可能,这样的话我们可以在其它平台上很轻易的计算这些可能性有多少可以构成钝角三角形,我通过Excel计算出的结果是有1474种,当然这几天Excel被我大数计算玩崩了,我只验算了两遍。。。,没法验算第三遍。。。

  有兴趣的同学可以也来算一算。

  那么我们计算这个数干什么呢,很显然,如果我们随机多次,必定有一个会无限趋近的结果,而随机总次数和成功次数的比必定趋近于总可能数和成功可能数的比,那么我们假设完美情况,即总次数为5832次,而成功次数为1474次,那么通过他的公式,我们可以变换出

  π=4(n/m)+2,其中n为成功次数,m为总次数,

  带进去可想而知,结果为3.01097...这个误差很显然不能接受。

  而在mc中的挂机结果也证明了计算结果

我的世界中精确计算圆周率的各种方法我的世界中精确计算圆周率的各种方法

  结果约为3.03320,相比于圆周率,更接近于我所计算的结果。2s一取样,想想近六千次我挂了多长时间。。。

  同样的,我也自己建了一个用随机器求π的机器,下面上图,

  机器概貌

我的世界中精确计算圆周率的各种方法

  非常直观的设计,随机器会随机到这64*64这个大正方形里的随机一个点,而落入圆的会被计数。

  算法很简单,S(圆)=πr^2 S(方)=4r^2

  而4*S(圆)/S(方)=π

  顺带一提,这个圆是我手撸的,如果使用严格计算过并分配过面积的圆结果会更精确

  由于一个随机器带不动,所以我就建了16个随机器等概率随机到这正方形里的等面积16份,一来提升取样速度,二来在数学上其实是等效于一个16倍速的随机器。

  这个的效率是每秒取大约200次的样,由于太快我就不仔细数了。

  这是我去吃个饭挂机的成果(其实,连续挂了十几次,成绩都很稳定)

分享到:更多

游戏信息

我的世界
我的世界类型:休闲娱乐平台:PC,iOS,安卓电脑版下载
  • 游戏大礼包
  • 手游开测表