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

Определите количество шестизначных чисел, записанных в пятеричной системе счисления, учитывая, что числа не могут начинаться с цифр 1 и 2 и не должны содержать сочетания цифр 103 и 3304 одновременно.

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

Найдем все шестизначные числа, которые не начинаются с 1 и 2 (так же помним что числа не могут начинаться с 0): 2⋅5 ⋅5⋅5⋅5 ⋅5 = 6250  .

Заметим что число в котором встречается сочетания цифр 103 и 3304 одновременно всего одно — 103304, но оно начинается с 1, поэтому оно уже не вошло в комбинации. Следовательно ответ 6250.

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

a = ’01234’

count = set()

for x1 in ’34’:
    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
                        # в списке хранится True или False, находится ли определенная подстрока в s или нет.
                        # Если сумма списка равна 2, значит, в списке два True - такое число нам не подходит, так как, две комбинации в числе находятся одновременно
                        # True - 1. False - 0.
                        m = sum([’103’ in s, ’3304’ in s])
                        if m < 2:
                            count.add(s)
print(len(count))

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

from itertools import product

count = set()

for x in product(’01234’,repeat = 6):
    s = ’’.join(x)
    if s[0] not in ’012’:
        # в списке хранится True или False, находится ли определенная подстрока в s или нет.
        # Если сумма списка равна 2, значит, в списке два True - такое число нам не подходит, так как, две комбинации в числе находятся одновременно
        m = sum([’103’ in s,’3304’ in s])
        if m < 2:
            count.add(s)
print(len(count))

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