Сколько существует пятеричных пятизначных чисел, не содержащих в своей записи цифру 3, где никакие две чётные или две нечётные цифры не стоят рядом? Любую цифру можно использовать любое количество раз.
Решение руками
В 5-й системе счисления всего 5 цифр: 4, 3, 2, 1 и 0. По условию в числе не должно присутствовать цифры 3, поэтому алфавит сокращаетcя до 4, 2, 1, 0. Всего получилось три чётных цифры и одна нечётная.
Так как недопустимо ставить рядом две цифры одинаковой чётности, чётные и нечётные цифры должны чередоваться, таких вариантов всего два: Ч Н Ч Н Ч и Н Ч Н Ч Н.
Запишем эти же варианты, но с количеством цифр из алфавита, не забывая, что на первом месте в числе не может стоять ноль. Получим:
Решение через циклы
a = ’0124’ # исключаем 3, так как по условию она не должна быть в числе
count = set()
for x1 in ’124’: # число не может начинаться с 0
for x2 in a:
for x3 in a:
for x4 in a:
for x5 in a:
s = x1+x2+x3+x4+x5
# если в числе нет подряд идущих чётных или нечётных цифр
if all(int(s[i]) % 2 != int(s[i+1]) % 2 for i in range(len(s)-1)):
count.add(s)
print(len(count))
Решение через itertools
from itertools import product
cnt = 0
for i in product(’01234’, repeat=5):
s = ’’.join(i)
if not (’3’ in s) and s[0] != ’0’:
s = s.replace(’0’, ’2’).replace(’4’, ’2’)
if not(’22’ in s) and not(’11’ in s):
cnt += 1
print(cnt)