同じタスクを実行する3つのJavaScript関数を作成しました。それらはすべて同じ結果を提供しますが、どれがより高速で最もスケーラブルか疑問に思っていますか?
これが私の関数の最初のものです
function odds(n, p) {
var acc = 1;
for (var i = 0; i < n; i++) {
acc *= (n - i) / (p - i);
}
return acc;
}
二つ目
function odds(n, p) {
if (n == 0) {
return 1;
} else {
return (n / p) * odds(n - 1, p - 1);
}
}
三つ目
var odds = (function () {
var odds1 = function(n, p, acc) {
if(n == 0) {
return acc;
} else {
return odds1(n - 1, p - 1, (n / p) * acc);
}
}
return function(n, p) {
return odds1(n, p, 1);
}
}());