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

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

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

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

Задача 1#70583

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

— в строке есть два числа, каждое из которых повторяется дважды, остальные три числа различны;

— среднее арифметическое всех повторяющихся чисел строки больше среднего арифметического неповторяющихся чисел.

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

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

Решение Excel

Для начала посчитаем, сколько раз в строке появляется каждое число, для этого используем формулу

=СЧЁТЕСЛИ($A1:$G1; A1),

растягиваем её в диапазоне H:N. Затем выведем повторяющиеся числа с помощью формулы

=ЕСЛИ(H1=2; A1; 0)

в диапазоне O:U и неповторяющиеся числа с помощью формулы =ЕСЛИ(H1=1; A1; 0) в диапазоне V:AB.

Формулой

=ЕСЛИ(И(СЧЁТЕСЛИ(O1:U1; 0)=3; СУММ(O1:U1)/4>СУММ(V1:AB1)/3); 1; 0)

найдём строки, которые подходят по условию, помечая единицей.

После того, как растянули ячейку, выделяем её и смотрим на нижней панели сумму столбца, либо же в отдельной ячейке найдём значение с помощью формулы =СУММ(AС:AС).

 

Решение на Python

Для начала переведём файл таблицы в текстовый файл .txt. Для этого в редакторе таблиц нажмём «Файл» → «Сохранить как» и выберем формат .txt.

Далее прочитаем строки, введём счётчик нужных строк и начнём проход по ним. Нам нужно найти повторяющиеся и неповторяющиеся числа. Для этого создадим два списка: для повторяющихся и для неповторяющихся чисел. Чтобы в списке повторяющихся не было дубликатов, составлять его будем с помощью множества. В подходящих строках список повторяющихся имеет длину 2, а неповторяющихся — 3. Среднеарифметическое повторяющихся чисел будет sum (<повторяющ иеся>)∕2  , неповторяющихся — sum(< неповторя ющи еся> )∕3  . Если строка подходит под оба условия, увеличиваем счётчик.

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

# Считываем строки с числами из файла
number_lines = [list(map(int, line.split())) for line in file]

# Счётчик для количества подходящих под условие строк
lines_count = 0

# Перебираем строки - списки из 7 чисел
for line in number_lines:
    # Уникальные числа строки
    uniq = set(line)
    # Неповторяющиеся числа строки
    nonrepating = [x for x in uniq if line.count(x) == 1]
    # Уникальные числа, которые повторяются 2 раза в строке
    repeating2 = [x for x in uniq if line.count(x) == 2]

    if (len(repeating2) == 2 and len(nonrepating) == 3) and \
            (sum(repeating2) / 2 > sum(nonrepating) / 3):
        # Увеличиваем счётчик на 1
        lines_count += 1

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

Ответ: 19

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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