作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在javascript上使用lazy.js。
我想知道是否有一种很酷的方法来定义(实际上不是计算)由惰性求值支持的 PI。
我知道惰性求值是按需调用,但是如何在惰性求值代码中定义 PI?
例如,我们可以在lazy.js中定义自然数无限序列:
var _ = Lazy;
var natural = function(n)
{
return n;
};
var _natural = _.generate(natural);
当然,由于是按需调用,所以只能获取到一部分自然数
var n100 = _natural.take(100).toArray();
有什么方法可以像自然数一样定义 PI 吗?
谢谢!
最佳答案
有一种很酷的方法可以通过展开连续近似的无限流来延迟计算 pi。这些就是所谓的“无界龙头”算法(无界,因为它们利用惰性来产生无限的更好答案流)。
参见Jeremy Gibbon's paper ,其中给出了一个(故意模糊的)示例:
pi = g(1,0,1,1,3,3) where
g(q,r,t,k,n,l) =
if 4*q+r-t<n*t
then n : g(10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n,l)
else g(q*k,(2*q+r)*l,t*l,k+1,div(q*(7*k+2)+r*l)(t*l),l+2)
关于javascript - 有没有什么很酷的方法来使用惰性求值序列来定义/计算 PI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24465383/
2018年1月3日,王思聪被迫动用自己的微博,为一个诞生不到10天的App打了广告,“每天我都发奖金,今晚9点就发10万”。对他而言,这天的微博并非生日宴会,而是战场。王思聪的一则微博开启了“全民竞
我是一名优秀的程序员,十分优秀!