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

Все 5-буквенные слова, составленные из букв И,Н,Ф,А, записаны в алфавитном порядке. Вот начало списка:

1. ААААА

2. ААААИ

3. ААААН

4. ААААФ

5. АААИА

…..

Укажите количество слов, которые стоят между словами ИНАФФ и НФАИА(включая эти слова).

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

Заменим буквы на цифры: А — 0, И — 1, Н — 2, Ф — 3.

Теперь запишем 5-буквенные слова в новом алфавите.

1. 00000

2. 00001

3. 00002

4. 00003

5. 00010

…..

Полученный ряд — числа в четверичной системе счисления, записанные по возрастанию. Тогда слово ИНАФФ в числовом алфавите будет иметь вид 120334  , а слово НФАИА− 230104  .

Переведем полученные значения в десятичную систему счисления:

120334 = 39910

230104 = 70810

Тогда получится, что между словами ИНАФФ и НФАИА находится 708 − 399 + 1 = 310  слов (+1, так как учитываются оба этих слова).

Решение Python:

from itertools import *
c, res1, res2 = 0, 0, 0
for i in product(’АИНФ’, repeat = 5):
    s = ’’.join(i)
    c += 1
    if s == ’ИНАФФ’:
        res1 = c
    if s == ’НФАИА’:
        res2 = c
print(abs(res1 - res2) + 1)

Решение Python:

alf = ’АИНФ’
c, res1, res2 = 0, 0, 0
for i in alf:
    for j in alf:
        for k in alf:
            for l in alf:
                for m in alf:
                    s = i + j + k + l + m
                    c += 1
                    if s == ’ИНАФФ’:
                        res1 = c
                    if s == ’НФАИА’:
                        res2 = c
print(abs(res1 - res2) + 1)

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