Откройте файл электронной таблицы, содержащей в каждой строке пять натуральных чисел.
Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:
— каждое число в строке встречается по одному разу,
— утроенная сумма максимального и минимального значений не превышает удвоенной суммы оставшихся чисел.
В ответе запишите только число.
Решение. Сначала будем проверять, сколько раз в строке встречается число. Для этого
=СЧЁТЕСЛИ($A1:$E1;A1)
и скопируем её во все ячейки
=ЕСЛИ(K1=5;3*(МАКС(A1:E1)+МИН(A1:E1));0)
и скопируем её во все ячейки
=ЕСЛИ(K1=5;2*(СУММ(A1:E1)-МАКС(A1:E1)-МИН(A1:E1));0)
и скопируем её во все ячейки
=ЕСЛИ(K1=5;ЕСЛИ(L1<=M1;1;0);0)
и скопируем её во все ячейки
Окончательно с помощью формулы
Ответ: 853.
Приведём решение Евгения Джобса на языке Python.
with open('09.csv') as f:
# если просто копировать и вставить
# можно не делать замену (replace)
# сортировка сразу для удобства
nums = [sorted(map(int, s.replace(';', ' ')
.split()))]
for s in f]
cnt = 0
for t in nums:
if len(set(t)) == len(t) \
and 3*(t[0]+t[-1]) <= 2*sum(t[1:4]):
cnt += 1
print(cnt)
Приведём решение Евгения Джобса (через НАИБОЛЬШЕЕ/НАИМЕНЬШЕЕ).
Суть этого решения в первоначальном упорядочивании элементов строки.
Так, вписав формулы
=НАИБОЛЬШИЙ(A1:E1, 3),
в
Теперь для проверки одинаковости (уникальности) чисел достаточно сравнить только пары рядом стоящих чисел.
Для первой строки формула:
=И(F1>G1;G1>H1;H1>I1;I1>J1).
Для проверки второго условия: сумма максимума и минимума — F1 + J1, сумма трех оставшихся —
Значит, формула будет выглядеть как:
= 3*(F1+J1)<=2*СУММ(G1:I1).
Для проверки совпадения двух условий так же воспользуемся формулой с умножением
Приведём решение Михаила Глинского на языке Python.
count = 0
f = open('09.txt')
for s in f:
m = [int(x) for x in s.split() ]
m.sort()
if len(set(m))==5 and 3*(m[0]+m[-1]) <= 2*(sum(m)-(m[0]+m[-1])):
count += 1
print(count)
Примечание. Файл следует сохранить в формате txt.
Приведём решение Юрия Красильникова на языке Python.
a = [list(map(int,s.split(';'))) for s in open('09.csv')]
print(len([x for x in a if len(x) == len(set(x)) and 5*(max(x) + min(x)) <= 2*sum(x)]))
Примечание. Файл следует сохранить в формате csv.
PDF-версии: 