Тип 9 № 59802 
Работа с таблицами. Задания для подготовки
i
В файле находится таблица, которая содержит в каждой из строк по 7 натуральных чисел. Найдите количество таких строк, в которых два числа повторяются по 2 раза, а 3 других различны, среднее арифметическое неповторяющихся чисел меньше среднего арифметического повторяющихся.
Задание 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).
Ответ: 24.
Приведём решение Михаила Глинского на языке Python.
k=0
for s in open('9.txt'):
m=[int(x) for x in s.split()]
m.sort()
pov=[x for x in m if m.count(x) == 2]
nepov=[x for x in m if m.count(x) == 1]
if len (set(pov)) == 2 and len(nepov) != 0:
sap = sum(pov)/len(pov)
sanep = sum(nepov)/len(nepov)
if sanep < sap:
k += 1
print(k)
Примечание.Файл следует сохранить в формате txt.
Приведём решение Никиты Юрлова на языке Python.
f = open('9.txt')
c = 0
for i in f:
a = list(map(int, i.split()))
b = []
d = set()
for j in range(len(a)):
if a.count(a[j]) == 2:
b.append(a[j])
elif a.count(a[j]) == 1:
d.add(a[j])
if len(b) == 4 and len(d) == 3:
if sum(d)/3 < sum(b)/4:
c += 1
print(c)
Примечание.Файл следует сохранить в формате txt.
Ответ: 24