Тема 9. Работа с электронными таблицами

9.02 Количество строк, удовлетворяющих условию

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела работа с электронными таблицами
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#33882

Задание выполняется с использованием прилагаемых файлов

Откройте файл электронной таблицы, содержащей в каждой строке четыре натуральных числа. Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:

— предмаксимальное число из четырёх чисел больше среднего арифметического трёх других;

— среди четырёх чисел совпадают ровно два (например, четверка чисел 12,12,13,29  подходит, а четверка чисел 12,12,12,29  - нет).

В ответе запишите только число.

Вложения к задаче
Показать ответ и решение

Решение Excel

Для решения этой задачи воспользуемся следующей функцией:

      =НАИБОЛЬШИЙ()

Как она работает: подается массив и номер числа по убыванию. Так, в строке 123 61 89 157  следующая функция выдаст результат 157  :

      =НАИБОЛЬШИЙ(X:Y; 1)

Запишем в четыре ячейки в столбик формулы:

      =НАИБОЛЬШИЙ(A1:D1; 1)

      =НАИБОЛЬШИЙ(A1:D1; 2)

      =НАИБОЛЬШИЙ(A1:D1; 3)

      =НАИБОЛЬШИЙ(A1:D1; 4)

PIC

 

Дальше прописываем условия:

      =ИЛИ(A1=B1; A1=C1; A1=D1; B1=C1; B1=D1; C1=D1)

      =НЕ(ИЛИ(A1=B1=C1; A1=B1=D1; A1=C1=D1; B1=C1=D1))

      =НЕ(A1=B1=C1=D1)

Если все они истинны, тогда строка имеет только одну пару одинаковых чисел.

Прописываем формулу на оба условия (где K1 : M 1  наши ячейки с условиями, а F 1 : I1  числа по убыванию):

      =ЕСЛИ(И(K1:M1; G1>СРЗНАЧ(F1;H1;I1)); 1; 0)

Подсчитываем сумму столбца с данным условием, она равна 17  .

Решение на Python

f = open("9.txt")  # Открываем файл расширения txt

a = [list(map(int, line.split())) for line in f]  # Считывание строк чисел в файле
lines_count = 0  # Счётчик для количества подходящих под условие строк

for line in a:  # Перебираем строки - списки из 4 чисел

    predmax = sorted(line)[-2]  # Предмаксимальное число строки
    srzn = (sum(line) - predmax) / 3  # Среднее арифметическое 3 других чисел

    povtor = [x for x in line if line.count(x) > 1]  # Список совпадающих чисел

    if predmax > srzn and len(povtor) == 2:  # Оба условия выполняются
        lines_count += 1  # Увеличиваем счётчик на 1

print(lines_count)  # Выводим ответ

Ответ: 17

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!