27.05.2022

Как решить задачу на перестановки (Паскаль)

Задача. Петя составляет шестибуквенные слова перестановкой букв слова АВРОРА. При этом он избегает слов с двумя подряд одинаковыми буквами. Сколько всего различных слов может составить Петя?

Мы решали задачу о перестановках букв слова КОТ

Данную задачу будем решать подобным образом. Но необходимо учесть, что буквы в слове повторяются (буквы А и Р), а значит, нужно исключить повторяющиеся слова.

Как будем решать задачу

Для хранения уникальных (неповторяющихся) значений можно использовать множество.

Получим строки за счет перестановок элементов символьного массива методом 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.

Результат запуска программы

Перестановки букв АВРОРА


Комментариев нет:

Отправить комментарий