9.02 Количество строк, удовлетворяющих условию
Ошибка.
Попробуйте повторить позже
Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите количество строк таблицы, для чисел которых выполнены оба условия:
— в строке есть два числа, каждое из которых повторяется дважды, остальные три числа различны;
— среднее арифметическое всех повторяющихся чисел строки больше среднего арифметического неповторяющихся чисел.
В ответе запишите только число.
Решение 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. Среднеарифметическое повторяющихся чисел будет
, неповторяющихся —
. Если строка подходит под оба
условия, увеличиваем счётчик.
# Открываем файл с расширением .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)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

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

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

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

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

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!