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

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

Задача 1#62515

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

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

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

— каждое число в строке встречается по одному разу,

— утроенная сумма максимального и минимального значений не превышает удвоенной суммы оставшихся чисел.

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

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

Решение 1

Сначала будем проверять сколько раз в строке встречается число. Для этого в ячейку F1 запишем формулу =СЧЁТЕСЛИ(A1 :  E1,A1) и скопируем её во все ячейки диапазона F1 : J3200  .

В ячейке К1 запишем формулу =СУММ(F1:J1). Если число в ячейке равно 5, то в ряду все числа встречаются один раз. Скопируем формулу во все ячейки диапазона К1:К3200.

В ячейке L1 посчитаем утроенную сумму максимального и минимального значений. Для этого в ячейку L1 запишем формулу =ЕСЛИ(K1=5,3*(МАКС(A1:E1)+МИН(A1:E1)),0) и скопируем её во все ячейки диапазона L1 : L3200  .

В ячейке M1 посчитаем удвоенную сумму оставшихся чисел. Для этого в ячейку M1 запишем формулу =ЕСЛИ(K1=5,2*(СУММ(A1:E1)-МАКС(A1:E1)-МИН(A1:E1)),0) и скопируем её во все ячейки диапазона M 1 : M 3200  .

В ячейке N1 будем выписывать 1, если ряд подходит под условие задачи и 0 если не подходит. Для этого в ячейку N1 запишем формулу =ЕСЛИ(K1=5,ЕСЛИ(L1<=M1,1,0),0) и скопируем её во все ячейки диапазона N 1 : N3200  .

Окончательно, с помощью формулы =СУММ(N1:N3200) получим ответ — 853  .

Ответ: 853

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

Задача 2#62460

В каждой строке электронной таблицы записаны три натуральных числа, задающих длины трёх взаимно перпендикулярных рёбер прямоугольного параллелепипеда. Определите, сколько в таблице троек, для которых у заданного ими параллелепипеда можно так выбрать три грани с общей вершиной, что сумма площадей двух из них будет меньше площади третьей.

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

Для нахождения количества параллелепипедов, удовлетворяющих условию, необходимо найти площадь наибольшей грани и сумму площадей двух других граней. То есть для каждой тройки чисел необходимо найти произведение двух наибольших чисел, а также сумму произведений наибольшего и наименьшего чисел, среднего по величине и наименьшего чисел.

В ячейку D1 запишем формулу =НАИБОЛЬШИЙ(A1:C1,1)*НАИБОЛЬШИЙ(A1:C1,2) и скопируем её во все ячейки диапазона D2:D5000. Таким образом, для каждой тройки чисел найдём произведение двух наибольших чисел.

В ячейку E1 запишем формулу =НАИБОЛЬШИЙ(A1:C1,1)*НАИМЕНЬШИЙ(A1:C1,1)+НАИБОЛЬШИЙ(A1:C1,2)*НАИМЕНЬШИЙ(A1:C1,1) и скопируем её во все ячейки диапазона E2:E5000. Таким образом, для каждой тройки чисел найдём сумму произведений наибольшего и наименьшего чисел и среднего по величине и наименьшего чисел.

Теперь в ячейке F1 запишем формулу =ЕСЛИ(D1>E1,1,0) и скопируем её во все ячейки диапазона F2:F5000. С помощью формулы =СУММ(F1:F5000) получим ответ — 3119  .

Ответ: 3119

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

Задача 3#62459

В каждой строке электронной таблицы записаны три натуральных числа, задающих длины трёх взаимно перпендикулярных рёбер прямоугольного параллелепипеда. Определите, сколько в таблице троек, для которых у заданного ими параллелепипеда для любых трёх граней с общей вершиной сумма площадей двух из них больше площади третьей.

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

Для нахождения количества параллелепипедов, удовлетворяющих условию, необходимо найти площадь наибольшей грани и сумму площадей двух других граней. То есть для каждой тройки чисел необходимо найти произведение двух наибольших чисел, а также сумму произведений наибольшего и наименьшего чисел, среднего по величине и наименьшего чисел.

В ячейку D1 запишем формулу =НАИБОЛЬШИЙ(A1:C1,1)*НАИБОЛЬШИЙ(A1:C1,2) и скопируем её во все ячейки диапазона D2:D5000. Таким образом, для каждой тройки чисел найдём произведение двух наибольших чисел.

В ячейку E1 запишем формулу =НАИБОЛЬШИЙ(A1:C1,1)*НАИМЕНЬШИЙ(A1:C1,1)+НАИБОЛЬШИЙ(A1:C1,2)*НАИМЕНЬШИЙ(A1:C1,1) и скопируем её во все ячейки диапазона E2:E5000. Таким образом, для каждой тройки чисел найдём сумму произведений наибольшего и наименьшего чисел и среднего по величине и наименьшего чисел.

Теперь в ячейке F1 запишем формулу =ЕСЛИ(D1<E1,1,0) и скопируем её во все ячейки диапазона F2:F5000. С помощью формулы =СУММ(F1:F5000) получим ответ — 1878  .

Ответ: 1878

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

Задача 4#60354

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

Откройте файл электронной таблицы, содержащей в каждой строке два целых числа – координаты точки на плоскости. Найдите наибольшее расстояние точки от начала координат. В ответе запишите целую часть найденного расстояния.

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

Решение 1

Расстояние от точки A(x1,y1)  до точки B (x2,y2)  можно найти по теореме Пифагора: d2 = (x2 − x1)2 + (y2 − y1)2  . Запишем в ячейку C1 формулу =КОРЕНЬ(A1̂2 + B1̂2) - и скопируем ее на диапазон C1 : C5000  . Считаем максимальное значение в столбце C - =МАКС(С:С)

Ответ: 425

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

Задача 5#60353

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

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

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

Решение 1

Сначала проверим неравенство треугольника: каждая сторона треугольника меньше суммы двух других сторон. Запишем в ячейку D1 формулу =ЕСЛИ(И(A1<B1+C1; B1<A1+C1; C1<A1+B1);1;0) - и скопируем ее на диапазон D1 : D5000  .

Затем проверим есть ли два одинаковых числа в строке. Запишем в ячейку E1 формулу - =ЕСЛИ(ИЛИ(A1=B1; A1=C1; B1=C1);1;0) и скопируем ее на диапазон E1 : E5000  .

Считаем количество строк удовлетворяющих 1 и 2 условию - =ЕСЛИ(И(D1=1;E1=1);1;0). Ответ =СУММ(F:F)

Ответ: 229

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

Задача 6#60346

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

В каждой строке электронной таблицы записаны четыре натуральных числа. Определите, сколько в таблице таких четвёрок, в которых любые три числа могут быть сторонами невырожденного треугольника (вырожденным называется треугольник, у которого сумма длин двух сторон равна длине третьей стороны). В ответе запишите только число.

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

Воспользуемся функциями =НАИБОЛЬШИЙ() и =НАИМЕНЬШИЙ(). Как они работает: подается массив и номер числа по убыванию. Так, в строке 91 88 10 34 46  функция =НАИБОЛЬШИЙ(x:y; 1) выведет 91  , а функция =НАИМЕНЬШИЙ(x:y; 1) выведет 10  . В ячейку E1  запишем формулу =ЕСЛИ(НАИБОЛЬШИЙ(A1:D1,1)< НАИМЕНЬШИЙ(A1:D1,1)+НАИМЕНЬШИЙ(A1:D1,2),1,0) и скопируем её во все ячейки диапазона E1 : E5000  . Считаем количество строк удовлетворяющих условию - =СУММ(E:E)

Ответ: 1842

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

Задача 7#60338

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

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

— в строке все числа различны;

— удвоенная сумма максимального и минимального чисел строки не больше суммы оставшихся трёх её чисел.

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

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

Решение 1

Сначала проверим 1 условие. Запишем в ячейку F1  следующую формулу - =ЕСЛИ(ИЛИ(A1=B1,A1=C1,A1=D1,A1=E1,B1=C1,B1=D1,B1=E1,C1=D1,C1=E1,D1=E1),0,1).

Затем проверим 2 условие. Воспользуемся функциями =НАИБОЛЬШИЙ() и =НАИМЕНЬШИЙ(). Как они работает: подается массив и номер числа по убыванию. Так, в строке 91 88 10 34 46  функция =НАИБОЛЬШИЙ(x:y; 1) выведет 91  , а функция =НАИМЕНЬШИЙ(x:y; 1) выведет 10  . Запишем в ячейку формулу - =СУММ(A1:E1)-НАИБОЛЬШИЙ(A1:E1,1)-НАИМЕНЬШИЙ(A1:E1,1) и скопируем ее на диапазон G1 : G16000  . Получим сумму за вычетом наибольшего и наименьшего значений. Запишем в ячейку формулу - ЕСЛИ(И(2*(НАИБОЛЬШИЙ(A1:E1,1)+НАИМЕНЬШИЙ(A1:E1,1))<=G1,F1=1),1,0) и скопируем ее на диапазон H1 : H16000  . Считаем количество строк удовлетворяющих 1 и 2 условию - =СУММ(H:H)

Ответ: 607

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

Задача 8#60328

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

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

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

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

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

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

Решение 1

Для решения этой задачи воспользуемся функцией =СЧЁТЕСЛИ(). Как она работает: подается диапазон и критерий для поиска. Так, в строке 31 6 31 88 55 94  функция =СЧЁТЕСЛИ(x:y; 31) выведет 2  .

Запишем в ячейки H1  -M 1  следующие формулы: =ЕСЛИ(СЧЁТЕСЛИ(A1:F1,A1)=2,0,A1), =ЕСЛИ(СЧЁТЕСЛИ(A1:F1,B1)=2,0,B1), ... =ЕСЛИ(СЧЁТЕСЛИ(A1:F1,F1)=2,0,F1). Таким образом мы заменили числа, которые повторяются ровно два раза, на нулевые значения. Скопируем формулы на строки в диапазоне H1 : M 4000  .

Запишем формулу для проверки 1 условия - =ЕСЛИ(СЧЁТЕСЛИ(H1:M1,0)=2,1,0) и скопируем её на диапазон N1:N4000.

Чтобы вывести числа, которые повторяются в строке два раза, запишем формулу =(СУММ(A1:F1)-СУММ(H1:M1))/2 и скопируем её на диапазон O1 : O4000  .

Запишем формулу для проверки 1 и 2 условий - =ЕСЛИ(И(N1=1,(СУММ(H1:M1))/4<=(O1*2)),1,0) и скопируем её на диапазон P1 : P4000  . Считаем количество строк удовлетворяющих 1 и 2 условию - =СУММ(P:P)

PIC

Решение 2

Скопируем числа из Excel и перенесем в текстовый документ. Дальше будем работать с данным файлом.

f = open(’26.txt’)
ans = 0
for i in range(40000):
    a = sorted([int(s) for s in f.readline().split()])
    p = sum(a) - sum(set(a))
    x = sum(set(a) - {p}) / 4
    if len(set(a)) == 5 and x <= 2 * p:
        ans += 1
print(ans)

Ответ: 373

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

Задача 9#56310

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

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

— сумма минимального и среднего числа равна максимальному числу;

— максимальное число чётное.

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

В столбец E записываем максимальные числа с помощью =МАКС(), в столбец F средние с помощью =МЕДИАНА(), в столбец G минимальные с помощью =МИН(). Тогда сможет узнать, подходит ли нам строка или нет, с помощью формулы =ЕСЛИ(И(ОСТАТ(E1; 2)=0; F1+G1=E1); 1; 0). Посчитаем количество строк, в которых результат — 1.

 

Ответ: 1

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

Задача 10#40278

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

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

— сумма двух чисел равна сумме трех других;

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

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

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

Решение

Воспользуемся формулой НАИБОЛЬШИЙ(множество; k), которая возвращает k-ое наибольшее значение в указанном множестве, чтобы отсортировать каждую четвёрку чисел по убыванию. Так, в ячейке F1 запишем формулу =НАИБОЛЬШИЙ(A1:E1,1), в ячейку G1 — =НАИБОЛЬШИЙ(A1:E1,2), H1 — =НАИБОЛЬШИЙ(A1:E1,3), I1 — =НАИБОЛЬШИЙ(A1:E1,4), J1 — =НАИБОЛЬШИЙ(A1:E1,5). Скопируем формулы на все столбцы таблицы.

Проверим первое условие, а именно, что сумма двух чисел равна сумме трех других с помощью формулы =ЕСЛИ(СУММ(F1:G1)=СУММ(H1:J1),1,0). Проверим второе условие, а именно, что произведение максимального и минимального чисел равно произведению оставшихся с помощью формулы =ЕСЛИ(F1*J1=G1*H1*I1,1,0).

Осталось найти строки, удовлетворяющие двум условиям задачи =ЕСЛИ(И(K1=1,L1=1),1,0). С помощью формулы =СУММ(M:M) получим ответ на задачу — 2  .

Решение

f = open(’Задание 9.txt’)
count = 0
for i in range(1000):
    a = [int(s) for s in f.readline().split()]
    flag = False
    if min(a) != 0:
        if max(a) * min(a) == (a[0] * a[1] * a[2] * a[3] * a[4] // max(a) // min(a)):
            for j in range(5):
                for k in range(j + 1, 5):
                    if a[j] + a[k] == sum(a) - a[j] - a[k]:
                        flag = True
    else:
        if a.count(0) > 1:
            for j in range(5):
                for k in range(j + 1, 5):
                    if a[j] + a[k] == sum(a) - a[j] -a[k]:
                        flag = True
    if flag:
        count += 1
print(count)

Решение покороче

f = open(’Задание 9.txt’)
ans = 0
for i in range(1000):
    a = sorted([int(s) for s in f.readline().split()])
    pr = ((a[-1] * a[0]) == (a[1] * a[2] * a[3]))
    if pr and any((a[j] + a[k]) == (sum(a) - a[j] - a[k]) for j in range(5) for k in range(j + 1, 5)):
        ans += 1
print(ans)

Ответ: 2

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

Задача 11#40277

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

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

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

Решение таблицей:

Найдем максимальное и минимальное числа: в ячейку G1  запишем формулу =МАКС(A1:D1), а в H1  запишем =МИН(A1:D1). Найдем их произведение в ячейке I1  =G1*H1. Теперь найдем сумму оставшейся пары чисел, для этого в ячейку J1  запишем формулу =СУММ(A1:D1)-G1-H1. Теперь проверим, подходит ли под условие данная четверка: =ЕСЛИ(J1>I1;1;0) (ячейка K1  ). Скопируем все пять ячеейк с формулами и вставим их во все строки, содержащие четверки. Найдем сумму столбца K  и запишем полученное значение в ответ.

Решение программой:

f = open(’9.txt’)
n = 1000
ans = 0
for i in range(n):
    a = [int(s) for s in f.readline().split()]
    if (max(a) * min(a)) < (sum(a) - max(a) - min(a)):
        ans += 1
print(ans)

Ответ: 6

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

Задача 12#40276

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

Антон написал программу, которая генерирует пароли, но, к сожалению, в социальной сети WitoutB можно использовать только пароли без буквы B  (заглавная или строчная) и обязательно пароль должен начинаться хотя бы с одного из знаков + − ∕∗!&$#?@  <>  . Найдите количество подходящих паролей.

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

Решение таблицей:

Добавим в самое начало новую строку, для этого нажмем на первую строку правой кнопкой мыши и выберем Вставить строку, запишем в нее что-нибудь.

Теперь выберем эту ячейку и нажмем на Сортировка и фильтр, затем —- Фильтр. Нажмем на появившийся в правой части ячейки квадратик и выберем Текстовые фильтры → Не содержит, в появившемся окошке в свободном поле записываем букву B → выбираем И и записываем букву b  → ОК. Вновь нажимаем на квадратик в ячейке A1  и выбираем Сортировка от А до Я. Теперь пробегаемся по всем ячейкам и находим первую, которая начинается не с символов + − ∕∗!&$#?@ <>  . Выделяем все подходящие и смотрим их количество в правом нижнем углу, но это не конечное наше значение. Если внимательно посмотреть, то у нас нету строчек с началом с символа − . Проверим количество ячеек, где начало будет именно с этого символа. Запишем в отдельной ячейке формулу =НАЙТИ(’-’,A1,1), и растянем ее вниз. У нас значение 1 выдаст, когда —- будет первым символов в строке. Дальше запишем в какую-нибудь ячейку формулу =СЧЁТЕСЛИ(D:D,’1’), чтобы сосчитать количество всех этих строчек. Сложим с предыдущим значением. Записываем полученное значение в ответ.

Решение программой:

f = open(’text.txt’)
a = f.readlines()
n = len(a)
for i in range(n):
    s = a[i]
    a[i] = s[:-1]

counter = 0

for i in a:
    if not (’B’ in i) and not (’b’ in i):
        if i[0] in "+-/*!&$#?@<>":
            counter += 1
print(counter)
f.close()

Ответ: 126

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

Задача 13#40275

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

Ни один день не может обойтись без капибар, поэтому по традиции кто-то из марафонцев точно отправит хотя бы одного капибаренка во флудилку. Откройте файл электронной таблицы, содержащей натуральные числа — количество отправленных капибар за каждый час в период с 1 по 31 котября некоторого года. Определите количество дней, в которых максимальное количество капибар среди данного дня было отправлено в один из часов с 7 до 12 (включительно).

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

В ячейку AA2  запишем формулу =МАКС(B2:Y2). В ячейку AB2  запишем формулу =ЕСЛИ(ИЛИ(I2=AA2;J2=AA2;K2=AA2;L2=AA2;M2=AA2;N2=AA2);1;0). Посчитаем количество единиц в столбце   AB  и запишем полученное значение в ответ.

Ответ: 4

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

Задача 14#40267

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

Воскресенье (как всем известно) — день закрытия всех дедлайнов, поэтому Олег решил открыть таблицу, содержащую количество выполненных заданий по каждой теме за все дни недели. Известно, что каждая домашняя работа выполнена лишь на 25%  . Определите, сколько заданий нужно выполнить Олегу, чтобы закрыть все дедлайны.

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

Решение 1:

Ячейка таблицы - 25%

x   - 100%

В ячейку B11  запишем формулу =B2*100/25, скопируем ее на все ячейки, которые будут ссылаться на исходные данные. Найдем разницу между общим количеством задач во всех домашних работах и количеством уже решенных задач =СУММ(B11:H17)-СУММ(B2:H8). Запишем ответ.

Решение 2:

Так как 25% = 14 ⋅100%  , то 75% = 34 ⋅100%  = 3⋅ 14 ⋅100% = 3⋅25%  . Общее количество решенных задач =СУММ(B2:H8). Умножим найденное значение на 3  и получим ответ.

Ответ: 723

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

Задача 15#40266

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

Флудилка молчит… Чтобы вернуть все на свои места, в игру вступает всемогущий ГУАР, способный навести порядок одним своим появлением. Для вашего доступа предоставлены данные количества появлений ГУАР за 1 — 30 числа сентября некоторого года. Номера чисел месяца даны на отрезке [A1; A30]  , а количество появлений ГУАР в определенный день на отрезке [B1;B30 ]  . Откройте файл электронной таблицы, содержащей целые числа. Найдите количество дней, когда ГУАР появлялся наибольшее количество раз.

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

Найдем максимум из всех значений в столбце B  с помощью формулы =МАКС(B1:B30) (запишем в ячейку B31  ), затем в ячейку C1  запишем формулу =ЕСЛИ(B1=$B$31;1;0). Теперь найдем количество всех полученных единиц и запишем это значение в ответ.

Ответ: 2

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

Задача 16#35908

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

Откройте файл электронной таблицы, содержащей натуральные числа. Определите количество чисел, вокруг которых все 8  ячеек являются простыми числами (сверху, снизу, справа, слева и по углам). Если с какой-либо стороны от числа нет других, то такие числа не рассматриваются. В ответ запишите полученное значение.

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

Перенесем все данные из таблицы в текстовый документ

def is_prime(n): # Проверка числа на простоту
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return n != 1 # if n!=1:True else: False

f = open(’1.txt’) # копируем таблицу и вставляем в текстовый файл
a = [] # будем заполнять этот массив массивами со значениями True/False
for i in range(100): # всего в таблице 100 строк
    # разбиваем строку по знаку \t (tab)
    # применяем is_prime, чтобы узнать простое ли каждое из чисел строки
    a.append([is_prime(int(x)) for x in f.readline().split(’\t’)])
count = 0
# ищем следующую картину, центральный элемент в проверке не нуждается
# True True True (i - 1; j - 1) (i - 1; j) (i - 1; j + 1)
# True ---- True   (i; j - 1)     (i; j)     (i; j + 1)
# True True True (i + 1; j - 1) (i + 1; j) (i + 1; j + 1)
for i in range(1, 99):
    for j in range(1, 99):
        if a[i - 1][j] and a[i + 1][j] and a[i][j + 1] and a[i][j - 1] and \
                a[i + 1][j + 1] and a[i + 1][j - 1] and a[i - 1][j + 1] and a[i - 1][j - 1]:
            count += 1
print(count)

Ответ: 1

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

Задача 17#35907

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

Программист Саша купил таблицу с IP-адресами кодировки IPv4 из 11  случайных сетей, но, взглянув на неё, он сразу увидел, что некоторые IP-адреса не могут существовать, так как в одном байте не может содержаться число, большее чем 255  (так, например, адрес 255.51.15.81  может существовать, а вот 256.21.24.56  или 500.0.0.0  не могут). Вам требуется найти номера сетей, в которой содержится больше всего и меньше всего настоящих адресов. Для вашего доступа предоставлены последние 11  разных сетей, в каждой из которых дано по 50  IP-адресов. Откройте файл электронной таблицы, содержащей IP-адреса и номера сетей. Номера сетей даны на отрезке [B1;L1]  .

Требуется найти номера таких сетей, содержащие максимальное и минимальное количество реальных IP-адресов и сложить их. В ответе запишите сумму искомых значений.

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

Перенесем все данные из таблицы в текстовый документ

f = open(’1.txt’)
все строки первого столбца
все строки второго столбца
...
n = 11 # всего сетей
m = 50 # всего адресов в сети
minim, maxim = 100000000, -1
ind_1, ind_2 = -1, -1

for i in range(n): #всего n сетей
    count = 0 # счетчик неправильных сетей
    for j in range(m): # m ip адресов в каждой сети
        # разбиваем каждый ip адрес на числа
        a = [int(x) for x in f.readline().split(’.’)]
        for x in a: # проверяем каждое из чисел массива
            if x > 255:
                count += 1
                break
    if count > maxim: # сохраняем номер сети с максимальным количество ошибок
        maxim = count
        ind_1 = i + 1 # индексация в питоне с 0, не забываем добавить 1
    if count < minim: # сохраняем номер сети с минимальным количество ошибок
        minim = count
        ind_2 = i + 1 # индексация в питоне с 0, не забываем добавить 1
# В сети, где меньше всего ошибок больше всего правильных адресов --- ind_2
# В сети, где больше всего ошибок меньше всего правильных адресов --- ind_1
print(ind_1 + ind_2)

Ответ: 9

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

Задача 18#35906

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

Программист Саша купил таблицу с IP-адресами кодировки IPv4 из 20  случайных сетей, но, взглянув на неё, он сразу увидел, что некоторые IP-адреса не могут существовать, так как в одном байте не может содержаться число, большее чем 255  (так, например, адрес 255.51.15.81  может существовать, а вот 256.21.24.56  или 500.0.0.0  не могут). Вам требуется найти номера сетей, в которых было замечено больше всего ошибок. Для вашего доступа предоставлены последние 20  разных сетей, в каждой из которых дано по 100  IP-адресов. Откройте файл электронной таблицы, содержащей IP-адреса и номера сетей. Номера сетей даны на отрезке [B1;L1]  .

Требуется найти номера таких сетей, в которых было замечено больше всего ошибочных IP-адресов. В ответе запишите сумму искомых значений.

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

Перенесем все данные из таблицы в текстовый документ

f = open(’1.txt’)
# все строки первого столбца
# все строки второго столбца
# ...
n = 20 # всего сетей
m = 100 # всего адресов в сети
maxim = -1
ans = 0

for i in range(n): #всего n сетей
    count = 0 # счетчик неправильных сетей
    for j in range(m): # m ip адресов в каждой сети
        # разбиваем каждый ip адрес на числа
        a = [int(x) for x in f.readline().split(’.’)]
        for x in a: # проверяем каждое из чисел массива
            if x > 255:
                count += 1
                break
    if count > maxim: # сохраняем новый максимум ошибок
        maxim = count
        ans = i + 1 # индексация в питоне с 0, не забываем добавить 1
    elif count == maxim: # если вновь найдена сеть с максимальным количеством ошибок
        ans += i + 1
print(ans)

Ответ: 51

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

Задача 19#35905

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

Программист Саша купил таблицу с IP-адресами кодировки IPv4 из 10  случайных сетей, но, взглянув на неё, он сразу увидел, что некоторые IP-адреса не могут существовать, так как в одном байте не может содержаться число, большее чем 255  (так, например, адрес 255.51.15.81  может существовать, а вот 256.21.24.56  или 500.0.0.0  не могут). Вам требуется найти номер сети, в которой было замечено меньше всего ошибок. Для вашего доступа предоставлены последние 10  разных сетей, в каждой из которых дано по 10  IP-адресов. Откройте файл электронной таблицы, содержащей IP-адреса и номера сетей. Номера сетей даны на отрезке [B1;L1]  .

Требуется найти номер сети, в которой было замечено меньше всего ошибок. В ответе запишите искомое значений.

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

Перенесем все данные из таблицы в текстовый документ

f = open(’1.txt’)
# все строки первого столбца
# все строки второго столбца
# ...
n = 10 # всего сетей
m = 10 # всего адресов в сети
minim = 1000000000000
ans = 0

for i in range(n): #всего n сетей
    count = 0 # счетчик неправильных сетей
    for j in range(m): # m ip адресов в каждой сети
        # разбиваем каждый ip адрес на числа
        a = [int(x) for x in f.readline().split(’.’)]
        for x in a: # проверяем каждое из чисел массива
            if x > 255:
                count += 1
                break
    if count < minim: # сохраняем новый минимум ошибок
        minim = count
        ans = i + 1 # индексация в питоне с 0, не забываем добавить 1
print(ans)

Ответ: 7

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

Задача 20#35903

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

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

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

Скопируем всю таблицу и вставим только ее формат (Ctrl + Alt + V).

В первую строку новой таблице перенесем числовые значения из первой строки исходной табицы, аналогично поступаем с нижней строкой и крайними боковыми столбцами. В ячейку B54 (первая строка новой таблицы - 53) запишем формулу = ЕСЛИ(И(B2<B1; B2 < C2; B2 < A2; B2 < B3); B2; 100000000). Скопируем ее на все оставшиеся клеточки таблицы. Теперь ищем минимум из всех ячеек, в которые записали формулу, с помощью формулы =МИН(B54:AW101). Запишем полученное значение в ответ.

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