Автор: Джобс Е.
Уровень: Простой
Сколько существует 4-разрядных четверичных чисел, в которых хотя бы одна цифра встречается не менее двух раз?
from itertools import *
cnt = 0
for p in product('0123', repeat=4):
num = ''.join(p)
if num[0] != '0':
if any(num.count(x) >= 2 for x in num):
cnt += 1
print(cnt)
Ответ: 174
from itertools import *
- Импорт всех функций из модуля itertools (используется функция product)
cnt = 0
- Инициализация счетчика для подсчета подходящих комбинаций
for p in product('0123', repeat=4):
- Цикл по всем возможным 4-значным комбинациям из цифр 0,1,2,3 (с повторами)
- Например: ('0','0','0','0'), ('0','0','0','1'), ..., ('3','3','3','3')
num = ''.join(p)
- Объединение кортежа символов в строку (например, ('1','2','3','0') → '1230')
if num[0] != '0':
- Проверка, что число не начинается с 0 (исключаем 4-значные числа с ведущим нулем)
if any(num.count(x) >= 2 for x in num):
- Проверка, что в числе есть хотя бы одна цифра, которая повторяется 2 или более раз
- any() возвращает True, если хотя бы один элемент удовлетворяет условию
cnt += 1
- Если оба условия выполнены (не начинается с 0 и есть повторяющиеся цифры), увеличиваем счетчик
print(cnt)
- Вывод общего количества подходящих комбинаций
Please open Telegram to view this post
VIEW IN TELEGRAM