Всего различных вариантов расставить 5 букв на 5 мест равно 5!=120. Из них нужно выкинуть те варианты, где две гласные стоят рядом.
В наборе всего две гласные, поэтому можно просмотреть позиции, где они могут стоять: (1,2), (2,3), (3,4), (4,5) - 4 варианта позиций. Число расставить их друг относительно друга равно 2!=2 (ЕА, АЕ).
При фиксированной расстановке гласных букв остается 3 места, на которые можно расставить 3 согласные буквы. Это можно сделать Таким образом, количество неподходящих вариантов равно 4*2*6=48.
Значит, число подходящих вариантов равно 120-48=72.
Procedure TForm1.Button4Click(Sender: TObject); var Buff: TNodePointer; x: TItem; i,j: Cardinal; begin i:=0; Buff:=Head; if(Buff^.Next=nil) then begin ShowMessage('В стеке один элемент!'); exit; end; while Buff <> nil do begin while (Buff^.Next<>nil) and (Buff^.Data=Buff^.Next^.Data) and not(isEmpty(Buff)) do begin pop(Buff^.Next,x); for j:=i to StringGrid1.RowCount-2 do StringGrid1.Cells[0,j]:=StringGrid1.Cells[0,j+1]; StringGrid1.RowCount:=StringGrid1.RowCount-1; end; Buff:=Buff^.Next; i:=i+1; end; end;
PS. Delphi у меня сейчас нет, так что проверяйте сами. Если что не так - сообщайте.
72
Объяснение:
Всего различных вариантов расставить 5 букв на 5 мест равно 5!=120. Из них нужно выкинуть те варианты, где две гласные стоят рядом.
В наборе всего две гласные, поэтому можно просмотреть позиции, где они могут стоять: (1,2), (2,3), (3,4), (4,5) - 4 варианта позиций. Число расставить их друг относительно друга равно 2!=2 (ЕА, АЕ).
При фиксированной расстановке гласных букв остается 3 места, на которые можно расставить 3 согласные буквы. Это можно сделать Таким образом, количество неподходящих вариантов равно 4*2*6=48.
Значит, число подходящих вариантов равно 120-48=72.