朱一蛋疼的时候做的蛋疼之物 <-标题党

2012-01-31 03:11:29 +08:00
 zythum
url: http://zythum.free.bg/PI

或说这么算圆周率真的大丈夫?
虽然用js算圆周率是很蛋疼的事情。而且这个算法无比的蛋疼。

有木有什么好玩的算法呢?
4961 次点击
所在节点    程序员
30 条回复
zythum
2012-02-02 21:58:20 +08:00
@013231 现在的问题怎么解决浮点数长度的拘束.
cmonday
2012-02-02 22:01:52 +08:00
@zythum
JS 要突破浮点数只能自己模拟了……以前学 C 的时候用过数组模拟大数类,理论上位数无限,就是效率差点。
还可以用两个数拼一下,这样就跟 double 一样了。
反正肯定要把加减乘除都重新封装一遍……很久没搞算法了,很头大啊 = =
zythum
2012-02-02 22:03:49 +08:00
@cmonday 我ACM什么的很渣很渣的
cmonday
2012-02-02 22:14:54 +08:00
@zythum 大数类还算蛮好理解的,就是写起来比较麻烦,尤其是要考虑效率的情况下……
我 Google 了一把果然有人拿 JS 写过大数的,这个是最基础的写法:
http://www.silverna.org/blog/?p=67
这里有个用 JS + 割圆法算圆周率的,你可以参考下:
http://blog.csdn.net/ncs2002/article/details/429821
zythum
2012-02-02 22:21:08 +08:00
@cmonday 非常感谢。
013231
2012-02-02 22:25:43 +08:00
@zythum 随机分布为什么会比均匀分布更精确? 均匀分布只要你划分的更细就可以算得更精确呀, 而且速度比随机分布快许多(不用生成随机数).
以下是均匀分布的计算结果:
1000 * 1000: 3.145520
10000 * 10000: 3.141991
100000 * 100000: 3.141633
zythum
2012-02-02 22:35:49 +08:00
@013231 举个例子把... 如果你均匀分布是间隔是0.1。那么就是0.1了。算完就完事了。如果要再精简的话要再算一次。而且只能全部算问才能知道结果。
如果是随机的话。可以近似与多加一个个例的前后都是均匀分布的。只是均匀分布是间隔一直在取向去变小。那么只要随着个例的增多可以一直下去。每次都是一个近似的至,个例每增加就可以增加精确的程度。
不知道朱一有木有说清楚。
zythum
2012-02-02 22:36:50 +08:00
@013231 再做着用永远没有头的运算事不要用绝对的值(这边是均匀分布的间隔).
013231
2012-02-02 22:56:05 +08:00
@zythum 我知道, 随机取样的计算过程是"在线的", 这是它的优势. 我所说的是, 同样多取样点的状况下均匀取样同样可行且速度更快. 不过从另一个角度说, 用蒙特卡洛法进行PI的高精度运算本身就是蛋疼行为= =b
eric_q
2012-02-03 09:07:47 +08:00
这东西真熟悉,8年前我在文曲星电子辞典上无聊时用BASIC编了个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/26279

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX