Затруднение с перечислением всех слов, длиной не более заданной, удовлетворяющие требованиям
у меня возникла небольшая неопределенность вида в следующем простом задании:
Задан алфавит набором символом. Перечислить все слова, длиной не более заданной, удовлетворяющие требованиям, определенным индивидуальным заданием.Алфавит состоит из символов w, e, r, t. Составить слова длиной до 5 символов, состоящие из разных символов.
Следовательно, все слова из 1-2-3-4 символов (ведь по условию - до пяти) и СОСТОЯЩИЕ ИЗ РАЗНЫХ символов - т.е все эти комбинации тогда? т.е у меня по условию входит все размещения данных комбинаций (общее количество слов - 64)
То есть: 1 - w e r t 2 - we rt ew tr wt tw wr rw (всего 12) 3 - wer wet wte twe tew rew ert erw tre и т.д... (всего 24) 4 - wert ertw twre и т.д... (всего 24)
Ответы (1 шт):
Не очень понятно, в чём состоит вопрос, своего кода не приведено.
Пример рекурсивной генерации размещений на Delphi (символы в строках нумеруются с единицы!)
procedure Arrangement(var A: string; n, k: Integer; s: string);
var
i: Integer;
t: Char;
begin
if k = 0 then
Writeln(s)
else
for i := 1 to n do begin
t := A[i];
A[i] := A[n]; //store used item in the tail
Arrangement(A, n - 1, k - 1, s + t + ' '); //recursion without tail
A[i] := t; //get it back
end;
end;
var
src: string;
begin
src := 'asdf';
Arrangement(src, 4, 2, '');
Readln;
a f
a s
a d
s a
s f
s d
d a
d s
d f
f a
f s
f d