В каждой строке электронной таблицы записаны шесть натуральных чисел. Определите количество строк таблицы, содержащих числа, для которых одновременно выполнены все следующие условия:
— все числа в строке различны;
— среднее арифметическое наибольшего и наименьшего чисел в строке больше среднего арифметического всех остальных чисел.
В ответе запишите число — количество строк, удовлетворяющих заданным условиям.
Задание 9
Решение. Для начала найдем, сколько раз числа повторяются в строке. Для этого в ячейку введем формулу:
=СЧЁТЕСЛИ($A1:$F1;A1)
и скопируем ее на диапазон G1:L16000.
Теперь найдем, сколько раз число встречается в таблице, в ячейку M1 впишем формулу:
=СУММ(G1:L1)
и скопируем формулу до ячейки M16000.
В ячейке N1 среднее арифметическое наибольшего и наименьшего чисел в строке, для этого введем формулу:
=(МАКС(A1:F1)+МИН(A1:F1))/2
и скопируем формулу до ячейки N16000.
В ячейке O1 найдем среднее арифметическое всех остальных чисел, для этого введем формулу:
=(СУММ(A1:F1)-МАКС(A1:F1)-МИН(A1:F1))/4
и скопируем формулу до ячейки O16000. Заметим, что если максимальное число или минимальное число в строке повторяются, то такая строка нам не подойдет по первому пункту задачи.
В столбце P посчитаем строки, удовлетворяющие второму условию задачи, для этого введем формулу:
=ЕСЛИ(N1>O1;1;0)
и скопируем формулу до ячейки P16000.
В столбце Q будем писать 1, если строка удовлетворяет всем условиям задачи, и 0 — в остальных случаях, для этого в ячейку Q1 введем формулу:
=ЕСЛИ(И(M1=6;P1=1);1;0)
и скопируем ее до ячейки Q16000.
Окончательно находим количество искомых строк. Для этого в ячейку S1 записываем следующее:
=СУММ(Q1:Q16000)
и получаем ответ — 6840.
Ответ: 6840.
Приведём решение Бориса Савельева на языке Python.
f = open('9.txt')
count = 0
for s in f:
a = list(map(int, s.split()))
if len(set(a)) == len(a):
sr1 = (min(a) + max(a))/2
sr2 = (sum(a) - max(a) - min(a)) / 4
if sr1 > sr2:
count += 1
print(count)
Примечание. Файл следует сохранить в формате txt.
Приведём решение Ильи Андрианова на языке Python.
count = 0
for s in open('9.txt'):
M = sorted([int(x) for x in s.split()])
if len(M) == len(set(M)):
if ((M[0] + M[-1]) / 2) > (sum(M[1:-1]) / len(M[1:-1])):
count += 1
print(count)
Примечание. Файл следует сохранить в формате txt.
Ответ: 6840