簡體   English   中英

有什么很酷的方法可以使用惰性評估序列來定義/計算PI?

[英]Is there any cool method to define/calc PI using lazy evaluation sequence?

我在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的論文 ,其中給出了一個(故意模糊的)示例:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM