我試圖得到一個特定的收斂系列函數在JavaScript中摸索出超出錯誤:最大調用堆棧尺寸上匯聚一系列功能
function cnvg(sum,marker){
if((marker--||1000)>=0){
return cnvg(sum=(sum||0) + 1/Math.pow(-3,marker)/(2*marker+1), marker)
} else {
return sum;
}
}
我期待cnvg()
回來與Math.PI/Math.sqrt(12)
相當於(請參閱下面的圖片),但我一直得到「最大調用堆棧大小超出」錯誤。我認爲這可能是迭代的次數,所以我放棄1000
參考100
,然後10
,最後到1
,但我似乎仍然收到錯誤。
從理論上講,一旦倒計數至0,並執行最後的循環,應立即停止,並返回sum
價值,但是這似乎並沒有這樣的情況?誰能告訴我我做錯了什麼?
在此先感謝。
'marker - '在問題的代碼中不會減少'marker'? – naomik
這是密切的...但這是給我'3 + Math.PI/Math.sqrt(12)'...(3.9068996821171087) –
謝謝亞倫,圖片上傳... –