План:
Пермутации
Вариации
Комбинации
Триъгълник на Паскал
Разбиване на числа
*** Пермутации (Permutations)
[1.3.1] - наредени n-торки.
А. Без повторения { 1 2 3
}
123 132 213 231 312 321
Общ брой n!
[permute.cpp]
Б. С повторения { 1 1 2 3
}
1123 1132 1213 1231 1312 1321
2113 2131 2311 3112 3121 3211
Общ брой n!/(s1!s2!...sk!),
където si! е броят на i-тия различен елемент, участващ в
мултимножеството. В примера 4!/(2!1!1!) = 12.
*** Вариации (k-permutations
of n) [1.3.2] - нареден k-елементен списък измежду n
елемента.
А. Без повторения n =
3 { 1 2 3 }, k = 2
12 13 21 23 31 32
Общ брой n!/(n - k)! В примера 3!/1 = 6.
Б. С повторения n = 3
{ 1 2 3 }, k = 2
11 12 13 21 22 23 31
32 33
Общ брой nk. В примера 32 = 9.
[variate.cpp]
*** Комбинации (Combinations)
[1.3.3] k-елементно подмножество измежду n
елемента (ненаредено).
А. Без повторения n
= 5 { 1 2 3 4 5 }, k = 2
12 13 14 15 23 24 25
34 35 45
Общ брой n!/((n - k)!k!). В примера
5!/(3!2!) = 10.
[comb.cpp]
Б. с повторения n =
5 { 1 2 3 4 5 }, k = 2
11 12 13 14 15 22 23
24 25 33 34 35 44 45 55
Общ брой (n + k - 1)! / ((n - 1)! k!).
В примера 6!/(4!2!) = 15.