Задание 8

Комбинаторика слов

Типов: 3

01

Как распознать

В строке файла проверяются повторения чисел.

02

Условие

Найти строку: одно число встречается трижды, остальные различны, повторяющееся больше их среднего.

03

Разбор

Раздели элементы по числу повторений и проверь среднее.

04

Шаблон

template.py
f = open("1")
cnt = 0
num = 1
num_list =[]
for z in f:
    a = [int(x) for x in z.split()]
    a1 = [x for x in a if a.count(x)==3]
    a2 = [x for x in a if a.count(x)==1]
    if len(a1)== 3 and len(a2)== 3 and a1[0] > sum(a2)/3:
        num_list.append(num)
    num+=1
print(max(num_list))
01

Как распознать

Считаются числа фиксированной длины без повторов.

02

Условие

Посчитать четырёхзначные числа с разными цифрами и чередованием чётности.

03

Разбор

Перестановки исключают повторы, отдельно проверь ведущий ноль и соседей.

04

Шаблон

template.py
from itertools import *
cnt = 0
for i in permutations("0123456789", r=4):
    num = "".join(i)
    if i[0] != '0' and all(int(num[j]) %2 !=int(num[j+1]) % 2 for j in range(3)):
        cnt+=1
print(cnt)
01

Как распознать

Нужно фиксированное число цифр 5 и запрет соседства.

02

Условие

Посчитать семизначные записи в основании 9 с одной цифрой 5 без чётной цифры рядом.

03

Разбор

Перебери произведение цифр, исключи ведущий ноль и запрещённые пары.

04

Шаблон

template.py
from itertools import *
cnt = 0
for i in product("012345678",repeat=7):
    num = "".join(i)
    if i[0]!="0" and i.count("5") == 1 and     all("5" + x not in num and x + "5" not in num for x in "02468"):
        cnt+=1
print(cnt)