Тип 9 № 73864 

Работа с таблицами. Задания для подготовки
i
В каждой строке электронной таблицы записаны шесть натуральных чисел.
Назовём ячейку таблицы интересной, если для числа в ней одновременно выполнены все следующие условия:
— это число не встречается в других ячейках той же строки;
— это число встречается не менее 335 раз в других ячейках того же столбца;
— это число меньше среднего арифметического всех чисел строки, в которой оно находится (с учётом самого числа).
Определите, сколько в таблице строк, содержащих ровно одну интересную ячейку.
Задание 9
Решение. Сначала проверим первое условие. Для этого в ячейку G1 введем формулу:
=СЧЁТЕСЛИ($A1:$F1;A1) и скопируем эту формулу во все оставшиеся ячейки
диапазона G1:L30000. Проверим второе условие. Для этого в ячейку M1 введем формулу:
=ЕСЛИ(СЧЁТЕСЛИ(A:A;A1)>=336;1;0) и скопируем эту формулу во все оставшиеся ячейки
диапазона M1:R30000. Проверим третье условие. Для этого в ячейку S1 введем формулу, чтобы посчитать среднее арифметическое всех чисел строки:
=СРЗНАЧ(A1:F1) и скопируем эту формулу во все оставшиеся ячейки
диапазона S2:S30000. В
ячейку T1 введем формулу:
=ЕСЛИ(A1<$S1;1;0) и скопируем эту формулу во все оставшиеся ячейки
диапазона T1:Y30000. Определим уникальные ячейки. Для этого вв ячейку Z1 введем формулу:
=ЕСЛИ(И(G1=1;M1=1;T1=1);1;0) и скопируем эту формулу во все оставшиеся ячейки
диапазона Z1:AE30000. В ячейке AF посчитаем количество уникальных ячеек в строке. Для этого в ячейку AF1 введем формулу:
=СУММ(Z1:AE1) и скопируем эту формулу во все оставшиеся ячейки
диапазона AF1:AF30000. Проверим, удовлетворяет ли строка требованиям задачи. Для этого в ячейку AG1 введем формулу:
=ЕСЛИ(AF1=1;1;0) и скопируем эту формулу во все оставшиеся ячейки
диапазона AG1:AG30000. Окончательно воспользовавшись формулой:
=СУММ(AG:AG), получим ответ — 2969.
Ответ: 2969.
Примечание. В задаче есть условие "это число встречается не менее 335 раз в других ячейках того же столбца". В решении учитывается это условие. Значение должно встречается в проверяемой ячейке и в 335 других ячейках таблицы, всего 336 раз и более.
Приведём решение Юрия Красильникова на языке Python.
a = [list(map(int,s.split(';'))) for s in open('09.csv')]
atrans = [[x[i] for x in a] for i in range(6)]
adict = [{n:atrans[i].count(n) for n in set(atrans[i])} for i in range(6)]
n = 0
for x in a:
sa = sum(x)/6
t = [i for i in range(6) if x.count(x[i]) == 1 and adict[i][x[i]] >= 336 and x[i] < sa]
if len(t) == 1: n += 1
print(n)
Примечание. Файл следует сохранить в формате CSV.
Ответ: 2969