Кодовый замок, PIN карты, серийный номер — всюду встречается код фиксированной длины. Сколько вариантов он даёт? Ответ зависит от размера алфавита, длины кода и ограничений: разрешены ли повторы и допустим ли ведущий ноль. Калькулятор считает все три случая по правилу произведения.
Код из n позиций — это последовательность независимых выборов. Если на каждой позиции может стоять любой из m символов и повторы разрешены, число вариантов равно m в степени n. Для трёх цифр и десятичного алфавита m = 10, n = 3, значит комбинаций 10³ = 1 000: от 000 до 999.
Если ведущий ноль запрещён, первая позиция уменьшается до m − 1 вариантов, а остальные остаются полными. Так получаются настоящие трёхзначные числа: 9 × 10 × 10 = 900. Если повторы запрещены, выбор на каждом шаге сокращается: 10 × 9 × 8 = 720.
В основе всех расчётов лежит правило произведения из комбинаторики: если первый шаг можно выполнить m способами, второй — k способами, то вместе их можно выполнить m × k способами. Для нескольких независимых позиций способы перемножаются. Именно поэтому число комбинаций растёт очень быстро: добавление ещё одной позиции увеличивает результат в m раз.
Если каждый символ встречается не более одного раза, первый выбор даёт m вариантов, второй — m − 1, третий — m − 2 и так далее. Такие последовательности называют размещениями без повторений. Если длина кода превышает размер алфавита, составить ни одной комбинации нельзя.
Пример 1. Алфавит 10 цифр, повторы разрешены: 10³ = 1 000 комбинаций, от 000 до 999.
Пример 2. Только настоящие трёхзначные числа без ведущего нуля: 9 × 10 × 10 = 900.
Пример 3. Трёхзначные числа с разными цифрами: 9 × 9 × 8 = 648. Если повторы запрещены, но ноль на первом месте допустим, получается 10 × 9 × 8 = 720.
Число комбинаций для алфавита из 10 цифр
| Условие | Формула | Результат |
|---|---|---|
| С повторами, 000–999 | 10 × 10 × 10 | 1 000 |
| Без ведущего нуля | 9 × 10 × 10 | 900 |
| Без повторов | 10 × 9 × 8 | 720 |
| Без повторов и без ведущего нуля | 9 × 9 × 8 | 648 |
При десяти цифрах и разрешённых повторах получается 10 в четвёртой степени, то есть 10 000 вариантов. Каждая новая позиция увеличивает число комбинаций в десять раз.
Это последовательность, в которой каждый символ используется не более одного раза. Число таких последовательностей равно произведению m · (m − 1) · ... · (m − n + 1).
Первая позиция не может принимать значение ноль, поэтому вместо m вариантов остаётся m − 1. Остальные позиции остаются полными.
Число вариантов растёт как степень размера алфавита. Поэтому удлинение кода на один символ повышает стойкость примерно во столько раз, сколько символов доступно.