簡體   English   中英

序列的乘積(階乘)javascript

[英]product of a sequence (factorial) javascript

這個想法是在序列中找到數字..等式圖片:

方程圖像

 var pat = document.getElementById("pattern"); var nMax = 96; for (var n = 2; n <= 96; n++) { if (n != 96) pat.innerHTML += 1000 * (999 - 10 * (n - 2))/(1000 - 10 * (n - 2)) + ", "; else pat.innerHTML += 1000 * (999 - 10 * (n - 2))/(1000 - 10 * (n - 2)) + ",&hellip;"; }
 <body> <p id="pattern"></p> </body>

但問題是 pat.innerHTML 不會乘以所有前 n 個數字。 這個想法是創建一個序列:

 a(2) = 1000 * (999 - 10 * (2 - 2))/(1000 - 10 * (2 - 2)) a(3) = 1000 * (999 - 10 * (2 - 2))/(1000 - 10 * (2 - 2)) * (999 - 10 * (3 - 2))/(1000 - 10 * (3 - 2)) a(4) = a(3) * (999 - 10 * (4 - 2))/(1000 - 10 * (4 - 2))

等等。我該怎么做? (有關正確數學符號的方程式,請參見圖片。)

聽起來您只需要跟蹤一個保存上次迭代結果的持久變量,並通過乘以它來計算當前迭代的結果。 序列從 1000 開始,因此將其作為初始結果:

 var pat = document.getElementById("pattern"); let lastResult = 1000; for (var n = 2; n <= 94; n++) { const nextResult = lastResult * ((999 - 10 * (n - 2))/(1000 - 10 * (n - 2))) pat.innerHTML += nextResult + '<br>'; lastResult = nextResult; }
 <body> <p id="pattern"></p> </body>

最好的方法是制作輔助方法進行計算。 如果您放置另一個 for 循環,則像數學需要一樣附加新值。

 /* Formula */ function calcFactoriel(arg) { var a = 0; // for numbers var b = ""; // for string for (var x = arg; x > 1; x--) { if (a == 0) { a = 1000 * (999 - 10 * (x - 2))/(1000 - 10 * (x - 2)) } else { a *= 1000 * (999 - 10 * (x - 2))/(1000 - 10 * (x - 2)) } b = "<div class='m' >" + a + " , </div> "; } return b; } var pat = document.getElementById("pattern"); var nMax = 96; for (var n = 2; n <= nMax; n++) { pat.innerHTML += calcFactoriel(n); }
 .m { color: rgba(0,0,0,0.6); background: #629552; text-shadow: 2px 8px 6px rgba(0,0,0,0.2), 0px -5px 35px rgba(255,255,255,0.3); }
 <body> <p id="pattern"></p> </body>

暫無
暫無

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

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