Задание №8 — Комбинаторика
#69807Задание №8ФИПИ
Количество информации
Определите количество пятизначных чисел, записанных в восьмеричной системе счисления, в записи которых ровно две цифры 4, и при этом никакая нечётная цифра не стоит рядом с цифрой 4.
Правильный ответ
612
Пояснение
Решение:
Пятизначное восьмеричное число — это набор из пяти цифр , у которого первая цифра не ноль. Нужно, чтобы цифра 4 встречалась ровно дважды и чтобы у каждой четвёрки оба соседа были чётными. Обратите внимание: сама цифра 4 чётная, поэтому две четвёрки рядом стоять могут.
Условие короче всего проверить полным перебором всех наборов.
from itertools import product
count = 0
for d in product(range(8), repeat=5):
if d[0] == 0:
continue
if d.count(4) != 2:
continue
ok = True
for i in range(5):
if d[i] == 4:
if i > 0 and d[i - 1] % 2 == 1:
ok = False
if i < 4 and d[i + 1] % 2 == 1:
ok = False
if ok:
count += 1
print(count)
Программа печатает 612.
Ответ: 612