Все 5-буквенные слова, составленные из букв В, Е, К, Н, О, записаны в алфавитном порядке и пронумерованы. Вот начало списка:
1. ВВВВВ
2. ВВВВЕ
3. ВВВВК
4. ВВВВН
5. ВВВВО
6. ВВВЕВ
Под каким номером стоит первое из слов, которое начинается с
Заменим буквы В, Е, К, Н, О на 0, 1, 2, 3, 4 соответственно (для них порядок очевиден — по возрастанию).
Выпишем начало списка, заменив буквы на цифры:
1. 00000
2. 00001
3. 00002
4. 00003
5. 00004
6. 00010
...
Полученная запись есть числа, записанные в пятеричной системе счисления в порядке возрастания. Первое слово, начинающееся
4 · 54 + 0 · 53 + 0 · 52 + 0 · 51 = 2500.
Не забудем о том, что есть слово
Ответ: 2501.
Приведём другое решение на языке Python.
a = {0: "В", 1: "Е", 2: "К", 3: "Н", 4: "О"}
k = 0
for i in range(0, len(a)):
for j in range(0, len(a)):
for g in range(0, len(a)):
for m in range(0, len(a)):
for n in range(0, len(a)):
k += 1
if a[i] == 'О':
print(k) # Возьмём первое число, которое выдаст программа
break
Приведём решение Ильи Андрианова на языке Python.
from itertools import *
num = 0
for s in product(sorted('ВЕКНО'), repeat=5):
num += 1
if s[0] == 'О':
print(num)
break
Приведём решение Павла Шосткана языкеPascalABC.NET.
##
'ВЕКНО'.Cartesian(5).Numerate.Where(\(n,s)->s[1]='О').first.Print;
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'ВЕКНО'.Cartesian(5).Numerate
.Where(\(n,s)->s[1]='О')
.First
.Item1
.Print;
end.

