Тип 9 № 81475 

Работа с таблицами. Задания для подготовки
i
Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите наибольший номер строки таблицы, для которой выполнены оба условия:
— в строке есть одно число, которое повторяется трижды, остальные три числа различны;
— повторяющееся число строки больше, чем среднее арифметическое ее неповторяющихся чисел.
В ответе запишите только число.
Задание 9
Спрятать решениеРешение. Сначала проверим первое условие. Для этого в ячейку G1 введем формулу:
=СЧЁТЕСЛИ($A1:$F1;A1) и скопируем эту формулу во все оставшиеся ячейки
диапазона G1:L25000.В ячейку M1 введем формулу:
=ЕСЛИ(И(СЧЁТЕСЛИ(G1:L1;1)=3;СЧЁТЕСЛИ(G1:L1;3)=3);1;0) и скопируем эту формулу во все оставшиеся ячейки
диапазона M2:M25000. Если в строке
3 повторяющихся числа и
3 различных, в ячейке М будет
стоять 1, иначе будет
стоять 0. Для проверки второго условия
в ячейку N1 введем формулу:
=ЕСЛИ(G1=3;A1;"") и скопируем эту формулу в ячейки
диапазона N1:S25000. В данном диапазоне мы получим только повторяющиеся трижды числа.
В ячейку Т1 введем формулу:
=СУММ(N1:S1)/3 и скопируем эту формулу во все оставшиеся ячейки
диапазона Т2:Т25000. В этом столбце будет число, повторяющиеся трижды.
В ячейку U1 введем формулу:
=(СУММ(A1:F1)-T1*3)/3 и скопируем эту формулу во все оставшиеся ячейки
диапазона U2:U25000. В этом столбце будет среднее арифметическое неповторяющихся чисел. (Заметим, что для строк без повторяющихся чисел эта формула не будет правильно работать, но такие строки не подходят по первому условию.) Проверим строки, подходящие под оба условия. Для этого
в ячейку V1 введем формулу:
=ЕСЛИ(И(M1=1;T1>U1);1;0) и скопируем эту формулу во все оставшиеся ячейки
диапазона V2:V25000.Включим фильтр по столбцу V, оставим значение только 1, наибольший номер строки таблицы, для которой выполнены оба условия: 24959.
получим ответ — 24959.
Ответ: 24959.
Приведём решение на языке Python.
f = open('demo_2025_9.txt')
number = 0
otv = []
for s in f:
number += 1
m = [int(x) for x in s.split()]
p3 = [x for x in m if m.count(x) == 3]
n = [x for x in m if m.count(x) == 1]
if len(p3) == 3 and len(n) == 3:
if (sum(p3))> (sum(n)):
otv.append(number)
print(max(otv))
Ответ: 24959