Тип 9 № 59714 

Работа с таблицами. Задания для подготовки
i
В файле находится таблица, которая содержит в каждой из строк по 7 натуральных чисел. Ваша задача состоит в том, чтобы посчитать количество таких строк, в которых два числа повторяются по 2 раза, а три других различны, и среднее арифметическое неповторяющихся чисел больше среднего арифметического повторяющихся.
Задание 9
Спрятать решениеРешение. Для решения задачи выпишем в столбцы от H до N повторяющиеся значения. Выпишем в ячейку H1 формулу:
=ЕСЛИ(СЧЁТЕСЛИ( $A1:$G1;A1)=2;A1;"").Данная формула вернет в ячейку значение из ячейки A1? если оно встречается два раза. Скопируем формулу на диапазон H1:N16000. В ячейку O1 выпишем формулу =СУММ(H1:N1)/4 и скопируем ее на диапазон O1:O16000. В данном столбце будет среднее арифметическое строк с повторяющимися числами. В ячейку P1 выпишем формулу =ЕСЛИ(H1="";A1;"") и скопируем ее на диапазон P1:V16000. Данная формула вернет значение в ячейки, если они не повторяются. В ячейку W1 выпишем формулу =СРЗНАЧ(P1:V1) и скопируем ее на диапазон W1:W16000. В данном столбце будет среднее арифметическое всех чисел строки. В ячейке X1 проверим, что в строке по 2 повторяющихся числа, для этого введем формулу =СЧЁТЕСЛИ(H1:N1;">0") и скопируем ее на диапазон X1:X16000.
В столбце Y будем считать количество строк, удовлетворяющих нашему решению. Для этого введем формулу:
=ЕСЛИ(И(X1=4;W1>O1);1;0)
и скопируем ее на весь диапазон Y1:Y16000. Посчитаем количество строк, удовлетворяющих нашему условию, формулой: =СУММ(Y1:Y16000).
Ответ: 96.
Приведём решение задачи Бориса Савельева на языке Python.
f = open('9.txt')
cnt = 0
for s in f:
a = list(map(int, s.split()))
if len(set(a)) == 5:
flag = 1
sr1 = 0
for i in range (0,len(a)):
if a.count(a[i]) == 2:
sr1 += a[i]
if a.count(a[i]) > 2:
flag = 0
break
if flag == 1:
sr2 = (sum(a)-sr1)/3
sr1 = sr1/4
if sr2 > sr1:
cnt += 1
print(cnt)
Ответ: 96