Задача. Петя составляет шестибуквенные слова перестановкой букв слова АВРОРА. При этом он избегает слов с двумя подряд одинаковыми буквами. Сколько всего различных слов может составить Петя?
Мы решали задачу о перестановках букв слова КОТ.
Данную задачу будем решать подобным образом. Но необходимо учесть, что буквы в слове повторяются (буквы А и Р), а значит, нужно исключить повторяющиеся слова.
Как будем решать задачу
Для хранения уникальных (неповторяющихся) значений можно использовать множество.
Получим строки за счет перестановок элементов символьного массива методом Permutations, исключим по условию задачи строки с двумя подряд идущими буквами А или Р и подсчитаем количество элементов полученного множества.
Программа решения задачи на языке Паскаль
var a,x:array of char; s:string; n:set of string;
begin
a:=new char[6];
a[0]:='А';a[1]:='В';a[2]:='Р';a[3]:='О';a[4]:='Р';a[5]:='А';
n:=[];
foreach x in a.Permutations do
begin
s:=x.JoinToString;
if not('АА' in s) and not ('РР' in s) then include(n,s);
end;
println(n);
print('Количество слов, которые составит Петя: ',n.count());
end.
Результат запуска программы
Комментариев нет:
Отправить комментарий