
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.138] |
![]() |
|
Сообщ.
#1
,
|
|
|
Всегда было интересно, решил спросить.
![]() |
Сообщ.
#2
,
|
|
|
Аэтерос, например, так как показано в статье "Наечатать все последовательности данной длины для заданного алфавита" ...
![]() |
![]() |
Сообщ.
#3
,
|
|
Генерируешь только упорядоченные последовательности букв. Можно это сделать например так
![]() ![]() void f(int len,char c) { if(len==k)вывод текущей строки и выход for(char ci=c;ci<='z';ci++) { str[len]=ci; f(len+1,ci); } } Начинается перебор вызовом f(0,'a'). Добавлено andrew.virus, в этом случае 123 и 321 считаются разными, а нужно различающиеся только порядком считать одинаковыми |
Сообщ.
#4
,
|
|
|
Цитата OpenGL @ Генерируешь только упорядоченные последовательности букв. я так и подозревал, спасибо ![]() Добавлено А сколько всего таких последовательностей будет? |
Сообщ.
#5
,
|
|
|
Число сочетаний из количества букв в алфавите по длинне слова?
|
![]() |
Сообщ.
#6
,
|
|
Нет. Дело в том, что число сочетаний дает количество только тех строк, в которых нет повторяющихся символов. Для искомого количества наверняка существует формула, но проще наверное сосчитать это динамикой.
|
![]() |
Сообщ.
#7
,
|
|
OpenGL, ага. Так и называется эта формула "число сочетаний с повторениями".
Можно вывести с помощью правил суммы и произведения. Можно посмотреть готовую: http://ru.wikipedia.org/wiki/Сочетание |
Сообщ.
#8
,
|
|
|
Спасибо, я там и нашёл
![]() |
Сообщ.
#9
,
|
|
|
Цитата OpenGL @ andrew.virus, в этом случае 123 и 321 считаются разными, а нужно различающиеся только порядком считать одинаковыми НУ и что. В итоге будут сгенирированы все нужные слова |