Пусть X - любая из гласных (а или е), Y - любая из согласных (б, в, г, д). Тогда слова, в которых гласных больше, чем согласных, будут иметь вид: - количество таких слов 2^5 = 32 Y - количество таких слов 2^4*4 = 16*4 = 64 XXXYX - количество таких слов 2^4*4 = 16*4 = 64 XXYXX - количество таких слов 2^4*4 = 16*4 = 64 XYXXX - количество таких слов 2^4*4 = 16*4 = 64 Y - количество таких слов 2^4*4 = 16*4 = 64 XXXYY - количество таких слов 2^3*4^2 = 8*16 = 128 XXYYX - количество таких слов 2^3*4^2 = 8*16 = 128 XYYXX - количество таких слов 2^3*4^2 = 8*16 = 128 YYXXX - количество таких слов 2^3*4^2 = 8*16 = 128 XXYXY - количество таких слов 2^3*4^2 = 8*16 = 128 XYXYX - количество таких слов 2^3*4^2 = 8*16 = 128 YXYXX - количество таких слов 2^3*4^2 = 8*16 = 128 XYXXY - количество таких слов 2^3*4^2 = 8*16 = 128 YXXYX - количество таких слов 2^3*4^2 = 8*16 = 128 YXXXY - количество таких слов 2^3*4^2 = 8*16 = 128 Итого: 32+5*64+10*128 = 32+320+1280 = 1632
{ Если что, часть программы не нужна для построения цепочки. Она просто иллюстрирует, что полученный результат верен. }
var sq : array[0..999] of array[0..9] of boolean; co : array[0..999] of integer; ar : array[1..10003] of 0..9; i,j: integer; x: integer; t : boolean; begin for i := 0 to 999 do begin for j := 0 to 9 do sq[i][j] := false; co[i] := 0; end; for i := 1 to 3 do ar[i] := 0; i := 3; t := true; {write('000');} while t do begin i := i + 1; x := ar[i-3]*100 + ar[i-2]*10 + ar[i-1]; if co[x] >= 10 then t := false else begin j := 1; while sq[x][j] do j := (j + 1) mod 10; ar[i] := j; sq[x][j] := true; co[x] := co[x] + 1; {write(j)} end; end; {writeln;} writeln('Length: ',i - 1);
{просто чтобы убедиться} for i := 0 to 999 do for j := 0 to 9 do sq[i][j] := false;
t := true; j := 0; i := 1; while (i <= 10000) and t do begin x := ar[i] * 100 + ar[i+1] * 10 + ar[i+2]; if sq[x][ar[i+3]] then t := false else begin sq[x][ar[i+3]] := true; j := j + 1; end; i := i + 1 end; if t and (j = 10000) then write('Confirmed') end.
Тогда слова, в которых гласных больше, чем согласных, будут иметь вид:
- количество таких слов 2^5 = 32
Y - количество таких слов 2^4*4 = 16*4 = 64
XXXYX - количество таких слов 2^4*4 = 16*4 = 64
XXYXX - количество таких слов 2^4*4 = 16*4 = 64
XYXXX - количество таких слов 2^4*4 = 16*4 = 64
Y - количество таких слов 2^4*4 = 16*4 = 64
XXXYY - количество таких слов 2^3*4^2 = 8*16 = 128
XXYYX - количество таких слов 2^3*4^2 = 8*16 = 128
XYYXX - количество таких слов 2^3*4^2 = 8*16 = 128
YYXXX - количество таких слов 2^3*4^2 = 8*16 = 128
XXYXY - количество таких слов 2^3*4^2 = 8*16 = 128
XYXYX - количество таких слов 2^3*4^2 = 8*16 = 128
YXYXX - количество таких слов 2^3*4^2 = 8*16 = 128
XYXXY - количество таких слов 2^3*4^2 = 8*16 = 128
YXXYX - количество таких слов 2^3*4^2 = 8*16 = 128
YXXXY - количество таких слов 2^3*4^2 = 8*16 = 128
Итого: 32+5*64+10*128 = 32+320+1280 = 1632