[Все темы по размещениям]
Теория: Окулов. Дискретная математика. 2008
Практика: Все строки длины n из k различных символов
Пусть задан алфавит из K первых цифр, начиная с 0. Необходимо сгенерировать все размещения с повторениями длины N для элементов данного алфавита. Другими словами для N = 2 и K = 4 получаем:
- 00
- 01
- 02
- 03
- 10
- 11
- 12
- 13
- 20
- 21
- 22
- 23
- 30
- 31
- 32
- 33
Генерация такой последовательности не должно составить большого труда:
- void gen(int pos) {
- if (pos == n) {
- for (int i=0;i<n;++i)
- printf("%d",cur[i]);
- printf("\n");
- return;
- }
- for (int i=0;i<k;++i) {
- cur[pos] = i;
- gen(pos+1);
- }
- }
* This source code was highlighted with Source Code Highlighter.
Изначально функция gen запускается с параметром 0.
Полное решение: здесь
Комментариев нет:
Отправить комментарий