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

АЛЕКСЕЙ из букв своего имени составил алфавит для генерации шестибуквенных слов. Буквы в слова могут входить любое количество раз, либо не входить совсем. Все слова записали в алфавитном порядке и пронумеровали с 1. На каком месте будет стоять слово КСЕЛЕА ?

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

Запишем буквы в алфавитном порядке: А, Е, К, Л, С, Й и пронумеруем от 0 до 5.

А — 0, Е — 1, Й — 2, К — 3, Л — 4, С — 5.

Тогда слово КСЕЛЕА имеет вид 3514106 = 3017410  . То есть слово КСЕЛЕА стоит на 30174+ 1 = 30175  месте.

Решение через циклы

a = ’’.join(sorted(set(’АЛЕКСЕЙ’))) # получаем алфавитный порядок букв слова АЛЕКСЕЙ
count = 0
for x1 in a:
    for x2 in a:
        for x3 in a:
            for x4 in a:
                for x5 in a:
                    for x6 in a:
                        s = x1+x2+x3+x4+x5+x6
                        count += 1
                        if s == ’КСЕЛЕА’:
                            print(count)
                            break

Решение через itertools

from itertools import product
count = 0
a = ’’.join(sorted(set(’АЛЕКСЕЙ’))) # получаем алфавитный порядок букв слова АЛЕКСЕЙ
for x in product(a,repeat = 6):
    s = ’’.join(x)
    count += 1
    if s == ’КСЕЛЕА’:
        print(count)
        break

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