こんにちは!
今回は「Javascriptで再帰関数を使った階乗の計算方法とと並び順の組み合わせの求め方」についてお伝えしたいと思います。
再帰関数は実務上余り使うことがないのですが、階乗の計算など使うことで効率的に算出できる場合もあります。
Math.jsというライブラリでも同様の計算ができるようです。
再帰関数を使った階乗の計算方法
ポイント
1からnまでの全ての整数の積
例)4! = 1 * 2 * 3 * 4
階乗の算出には再帰関数を使うことで少ないコード量で算出できる
以下に具体例を用いて説明します。
const calcFactorial = (num) => { // num >= 1を満たす整数
if (num === 1) return 1; // 再帰関数に終了条件は必須!
return num * calcFactorial(num - 1); // 再度自分自身の関数を呼び出す
};
calcFactorial(1); // 1
calcFactorial(4); // 24
calcFactorial(5); // 120
並び順の組み合わせを算出
問題例①
Aさん、Bさん、Cさん、Dさん、Eさんの5人が一列に並ぶ時、並び方の組み合わせは何通りあるか?
求め方は5! = 5 * 4 * 3 * 2 * 1 = 120(通り)
上記のコードと同様の計算で求めることができます。
問題例②
Aさん、Bさん、Cさん、Dさん、Eさんの5人が円形に座る時、並び方の組み合わせは何通りあるか?
求め方は(5- 1)! = 4 * 3 * 2 * 1 = 24(通り)
以上、お疲れさまでした〜🍵