我正在嘗試創建一個在JavaScript中執行Sigma符號計算的函數。 (如果你不知道西格瑪符號,下面將清楚我想要做什麼。)我的目標是創建一個函數,它可以像西格瑪符號一樣容易地編寫,並返回西格瑪符號計算的解決方案。理想情況下,我希望對函數的調用只需提供起始值,結束值和要對數字集合中的每個數字執行的計算,然後再將它們相加爲參數。如何創建一個在JavaScript中執行Sigma符號計算的函數?
例如,
thisIsMySigmaNotationFunction(1, 4, 2i+1)
將返回:
(2(1)+1) + (2(2)+1) + (2(3)+1) + (2(4)+1) = 24
這裏是我創建至今的代碼,它的工作原理,但我必須創建一個單獨的函數作爲2I使用+ 1個參數。我想知道是否有辦法避免這種情況並調用上面的函數,因爲2i + 1在未來可能需要更改爲i /(i + 1)或其他計算,並且不必創建每次插入作爲參數的單獨函數。
function sigmaCalculation(start, end, whatToSum){
var sum = 0;
for (var i = start; i <= end; i++){
sum += whatToSum(i);
};
console.log(sum);
}
function calculationToSum(this1){
return 2*this1+1;
}
除非你讓你自己的DSL(迷你語言),很抱歉,沒辦法。 – Zirak
你想通過什麼?傳遞函數(如你已經完成的)似乎是最簡單的解決方案,並且由於函數非常小,因此可以將它們作爲匿名函數傳遞。另一種方法是傳入一個字符串,然後將其解析爲操作,但這將是一個體面的工作。 –