В каждой строке электронной таблицы записаны шесть натуральных чисел.
Определите количество строк таблицы, содержащих числа, для которых одновременно выполнены все следующие условия:
— в строке есть число, повторяющееся не меньше трёх раз;
— в строке есть число, не повторяющееся в этой строке;
— среднее арифметическое всех повторяющихся чисел строки (с учётом количества повторений) меньше среднего арифметического неповторяющихся чисел этой строки.
В ответе запишите число — количество строк, удовлетворяющих заданным условиям.
Сначала проверим первое и второе условия. Для этого
Если в строке есть повторяющихся более трех раз числа, в ячейке N будет стоять число большее 0, иначе будет
Для проверки третьего условия
В данном диапазоне мы получим только не повторяющиеся числа.
В этом столбце будет среднее значение не повторяющихся чисел.
В данном диапазоне мы получим только повторяющиеся числа.
В этом столбце будет среднее значение повторяющихся чисел.
В этом столбце будет 1 если выполняется третье условие, и 0 если не выполняется.
В этом столбце будет 1 если выполняются все условия, и 0 если не выполняются. Окончательно воспользовавшись формулой:
Ответ: 17.
Приведём решение Бориса Савельева на языке Python.
f = open('09.txt')
k = 0
for i in f:
a=list(map(int,i.split()))
sum1=0
k1=0
sum2=0
k2=0
f=0
for j in range (0,len(a)):
if a.count(a[j]) > 1:
sum1+=a[j]
k1+=1
elif a.count(a[j])==1:
sum2+=a[j]
k2+=1
if a.count(a[j]) >= 3:
f=1
if k1!=0 and k2!=0 and f==1:
if sum1/k1 < sum2/k2:
k+=1
print(k)
Примечание. Файл необходимо сохранить в формате txt.
Приведём решение Юрия Красильникова на языке Python.
k = 0
for s in open('09.csv'):
a = list(map(int,s.split(';')))
unik = [x for x in a if a.count(x) == 1]
povt = [x for x in a if a.count(x) > 1]
cnt = [a.count(x) for x in a]
if len(unik) > 0 and max(cnt) >= 3 and sum(povt) / len(povt) < sum(unik )/ len(unik):
k += 1
print(k)
Примечание. Файл необходимо сохранить в формате csv

