Задание 8. Информатика. ЕГЭ. Поляков-7444

Просмотры: 536
Изменено: 24 ноября 2024

(И. Карпачев) Сколько существует чисел, восьмеричная запись которых обладает следующими свойствами:

  • состоит из \(6\) цифр;
  • содержит ровно две цифры \(4\), причем не стоящие рядом;
  • между этими двумя четвёрками находятся только цифры, числовое значение которых не меньше, чем \(5\);
  • другие цифры, отличные от \(4\), встречаются только по одному разу.

Решение:

Python


from itertools import product

def valid(s):
    if any(s.count(ch) > 1 for ch in '0123567'):
        return False
    if s.count('4') != 2:
        return False
    elif '44' in s:
        return False
    else:
        st, fin = (i for i in range(len(s)) if s[i] == '4')
        t = s[st + 1: fin]
        if any(ch in t for ch in '0123'):
            return False
        return True

alph = '01234567'
q = 0
for p in product(alph, repeat=6):
    if p[0] == '0':
        continue
    q += int(valid(''.join(p)))
print(q)

Ответ: \(1614\)