排列 (Permutation / Arrangement)
概念
n 個不同元素中任意選取 m (m <= n) 個元素進行排列,所有排列情況的個數叫做 排列數,其值等于:
A = n! / (n - m)!
! 表示數學中的階乘運算符,可以通過以下函數實現:
function factorial(n) { if (n === 0 || n === 1) { return 1; } else if (n < 0) { return null; } else { return n * factorial(n - 1); }}console.log(factorial(4)); // 24當 n = m 時,稱為 全排列,其值等于:
A = n!
全排列相當于將所有元素進行排序,得到所有不同順序情況的個數;
分析
利用階乘函數,通過上述數學公式只能得到所有情況的個數值,不容易得到具體的每種情況,要獲取每種情況的輸出值的話需要另尋他法;
用數組舉例分析:
全排列:
[1, 2, 3] => [
[1, 2, 3],
[1, 3, 2],
[2, 1, 3],
[2, 3, 1],
[3, 1, 2],
[3, 2, 1]
]
共 6 種情況樹狀圖表示:
1 2 3
/ / / / / /
2 3 1 3 1 2
| | | | | |
3 2 3 1 2 1 => 63 個元素中選取 2 個時:(n = 3, m = 2)
[1, 2, 3] => [
[1, 2],
新聞熱點
疑難解答
圖片精選