


Помогите написать программу для решения этой задачи задача с сайта Полякова номер задачи (7231)
В файле 17-390.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –100 000 до 100 000 включительно. Определите количество троек, для которых выполняются следующие условия:
– в тройке есть четырёхзначные числа, но не все числа четырёхзначные;
– в тройке больше числе, кратных 5, чем чисел, кратных 7;
– каждый элемент тройки больше среднего арифметического всех элементов последовательности, запись которых заканчивается на 615. (Гарантируется, что в последовательности есть хотя бы один элемент, запись которого заканчивается на 615.) В ответе запишите количество найденных троек, затем – минимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности
Задание простенькое но объёмное. Поэтому оставил тебе возможность хоть как то поучаствовать в написании
data = [123,1615,946,2619,981651,891598,61235,21661,1652,2615] #Вместо списка нагугли и впиши открытие файла с переводом строки в список чисел
колво_срабатываний_условия_1 = 0
колво_срабатываний_условия_2 = 0
колво_срабатываний_условия_3 = 0
колво_срабатываний_всех_условий_одновременно = 0
def проверка_условия_1(тройка):
d1 = []
for i,val in enumerate(тройка):
if int(val // 1000) != 0 and int(val // 10000) == 0:
d1.append(True)
else:
d1.append(False)
if True in d1 and False in d1:
return True
else:
return False
def проверка_условия_2(тройка):
d2 = []
for i,val in enumerate(тройка):
if val % 5 == 0:
d2.append(True)
elif val % 7 == 0:
d2.append(False)
if d2.count(True) > d2.count(False):
return True
else:
return False
def проверка_условия_3(арифм, тройка):
d3 = []
for i,val in enumerate(тройка):
if val > арифм:
d3.append(True)
else:
d3.append(False)
if all(d3):
return True
else:
return False
средння_арифм = [i for i in [i for i in data if i > 999 or i < -999] if str(i)[-3::] == '615']
средння_арифм = sum(средння_арифм) / len(средння_арифм)
if len(data) > 2:
for i in range(0,len(data)-2):
проверяемая_тройка = [data[i],data[i+1],data[i+2]]
результат_проверки = [проверка_условия_1(проверяемая_тройка),проверка_условия_2(проверяемая_тройка),проверка_условия_3(средння_арифм,проверяемая_тройка)]
if результат_проверки[0]:
колво_срабатываний_условия_1 +=1
if результат_проверки[1]:
колво_срабатываний_условия_2 +=1
if результат_проверки[2]:
колво_срабатываний_условия_3 +=1
if all(результат_проверки):
колво_срабатываний_всех_условий_одновременно +=1
print(f'''
Количество срабатываний условий:
Условие 1 : {колво_срабатываний_условия_1}
Условие 2 : {колво_срабатываний_условия_2}
Условие 3 : {колво_срабатываний_условия_3}
Количество срабатываний одновременно всех условий : {колво_срабатываний_всех_условий_одновременно}
''')
else:
print('В последовательности меньше 3 чисел')