Задание №9 ЕГЭ Информатика с ответом и решением
Ответ: 2453
Условие
Откройте файл электронной таблицы, содержащей в каждой строке три натуральных числа.
Выясните, какое количество троек чисел может являться сторонами треугольника, то есть удовлетворяет неравенству треугольника. В ответе запишите только число.
Подсказки — как подойти к решению
- Проверять тысячи строк вручную бессмысленно: либо прочитай файл программой (сохранив таблицу как CSV), либо подготовь в свободных столбцах вспомогательные вычисления и протяни формулы вниз.
- Для каждой строки понадобится наибольшее число и сумма двух других: наибольшее удобно взять функцией МАКС, а сумму остальных получить как сумму всех трёх минус наибольшее.
- Сравни две величины формулой ЕСЛИ со строгим «меньше», протяни её до последней строки и сложи пометки; помни, что при равенстве наибольшей стороны сумме двух других треугольник считается вырожденным и в ответ не входит.
Решение
Неравенство треугольника будет заведомо выполнено для всех сторон треугольника, если длина наибольшей стороны треугольника будет меньше суммы длин других двух сторон. В ячейке D1 запишем формулу =МАКС(A1:C1) и скопируем её во все ячейки диапазона D2:D5000. В ячейке E1 запишем формулу =СУММ(A1:C1)-МАКС(A1:C1) и скопируем её во все ячейки диапазона E2:E5000. Таким образом, получим длину наибольшей стороны и сумму других двух сторон для каждой тройки чисел. После этого в ячейку F1 запишем формулу =ЕСЛИ(D1<E1;1;0) и скопируем её во все ячейки диапазона F2:F5000. Теперь, воспользовавшись формулой =СУММ(F1:F5000), получим ответ — 2453.
Ответ: 2453.
Примечание.
В учебниках геометрии треугольник определяется как фигура, состоящая из трех точек, не лежащих на одной прямой, и трех соединяющих их отрезков. Неравенство треугольника формулируется так: каждая сторона треугольника меньше суммы двух других сторон. Поэтому три точки, лежащие на одном отрезке, рассматривать как треугольник не следует, учитывать в ответе этот случай не нужно. Причины для такого подхода понятны: геометрия изучает свойства фигур, а вырожденные объекты теряют свойства исходных фигур.
Приведём решение Сергея Калугина на языке Python.
cnt = 0
f = open('9.csv')
for s in f:
a = list(map(int,s.split(';')))
a.sort()
if a[0] + a[1] > a[2]:
cnt+=1
print(cnt)
Примечание. Файл следует сохранить в формате CSV.
Приведём решение Артёма Гридина на языке Python.
print([True if y[2] < sum(y[:2]) else False for y in tuple(map(lambda x: sorted(tuple(map(int, x.split(';')))), open('9.csv').read().splitlines()))].count(True))
Примечание. Файл следует сохранить в формате CSV.
Приведём решение Юрия Красильникова на языке Python.
# Необходимо предварительно сохранить данные из таблицы LibreOffice Calc
# в файл .csv с разделителем ';'
ответ = 0
for строка in open('9.csv'):
числа = list(map(int, строка.split(';')))
if 2*max(числа) < sum(числа): ответ += 1
print(ответ)
Примечание. Файл следует сохранить в формате CSV.
Приведём решение Юрия Красильникова на языке Python.
a = [list(map(int,s.split(';'))) for s in open('9.csv')]
print(len([1 for x in a if 2*max(x) < sum(x)]))
Примечание. Файл следует сохранить в формате CSV.
Приведём решение Сергея Донец на языке PascalABC.NET.
uses XLSX;
begin
var a:=ReadXLSXAsInts('38588.xlsx')
.Select(n->n.Order)
.Count(\(a,b,c)->a+b>c)
.Println;
end.
Примечание. Файл следует сохранить в формате xlsx.
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
ReadAllLines('38588.txt')
.Select(n->n.ToIntegers)
.Select(n->n.Order)
.Count(\(a,b,c)->a+b>c)
.Println;
end.
Примечание. Файл следует сохранить в формате txt.
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
ReadAllLines('38588.csv')
.Select(t -> t.Replace(';', ' '))
.Select(n->n.ToIntegers)
.Select(n->n.Order)
.Count(\(a,b,c)->a+b>c)
.Println;
end.
Примечание. Файл следует сохранить в формате csv.
Типичные ошибки
- В ответ попали вырожденные тройки: неравенство треугольника строгое, случай равенства наибольшей стороны сумме двух других учитывать нельзя.
- Сравнивалась не наибольшая сторона, а минимальная — тогда условие выполняется почти для всех строк; максимум и минимум легко перепутать при копировании формулы.
В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №9 по информатике