Задача к ЕГЭ по информатике на тему «слова в алфавитном порядке» №2

Все шестибуквенные слова, составленные из букв Б, Р, У, С, О, К, записаны в алфавитном порядке и пронумерованы, начиная с 1. Ниже приведено начало списка:

  1. ББББББ
  2. БББББК
  3. БББББО
  4. БББББР
  5. БББББС
  6. БББББУ
  7. ББББКБ

    ….

Какое слово стоит под номером 435?

Решение руками

Заменим буквы на цифры: Б – 0, К – 1, О – 2, Р – 3, С – 4, У – 5. Получим новый список:

  1. 000000
  2. 000001
  3. 000002
  4. 000003
  5. 000004
  6. 000005
  7. 000010

    ….

Порядковый номер слова всегда больше на единицу, поэтому число 43410  переведём в шестиричную систему счисления. Получается, что 434    10  = 2002    6  . Под номером 435 стоит слово ББОББО.

Решение Python:

# Решение 1
s = ’БКОРСУ’
n = 1
ans = ’’
for x1 in s:
    for x2 in s:
        for x3 in s:
            for x4 in s:
                for x5 in s:
                    for x6 in s:
                        w = x1 + x2 + x3 + x4 + x5 + x6
                        if n == 435:
                            ans = w
                        n += 1
print(ans)

# Решение 2
from itertools import product

s = ’БКОРСУ’
n = 1
ans = ’’
for x in product(s, repeat=6):
    w = ’’.join(x)
    if n == 435:
        ans = w
        break
    n += 1

print(ans)

Ответ: ББОББО
Оцените статью
Я решу все!