-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


ЕГЭ по информатике 2020, часть 1, № 21

Четверг, 23 Июля 2020 г. 22:31 + в цитатник
swf: ЕГЭ по информатике 2020, вариант Москва
Часть 1, № 21
Анализ программы с процедурами и функциями
Задание взято с сайта
http://kotolis.ru/realegeinf_2020

Условие. Напишите в ответе число, которое будет указано в результате выполнения алгоритма. Программа приведена на четырёх языках программирования.
user posted image

Решение.
Программа на Паскале:
var a, b, t, M, R: integer;
    function F(x: integer): integer;
    begin
    F:= 2(x*x – 9)*(x*x – 9) + 5
    end;
    begin
    a:= -20; b:= 20;
    M:= a; R:= F(a);
    for t:= a to b do
    if (F(t) < R) then begin
    M:= t; R:= F(t)
    end;
    writeln(M + 18);
    end.


Вначале ответим на вопрос, что делает программа.
В программе задана некая функция F.
Затем в точке a вычисляется начальное значение функции F(a).
Это начальное значение запоминается в переменной R:= F(a), а точка, в которой оно вычислено, запоминается в переменной M:= a.
Затем в цикле мы идём по целочисленным точкам t от a до b, в каждой точке вычисляем значение функции F(t) и сравниваем его с R:
если новое значение F(t) оказывается меньше R, то оно запоминается в R и M.
Программа ищет минимум функции F в целочисленных точках в диапазоне от a до b, запоминает последнюю точку M, на которой этот минимум достигается (точка минимума может быть не единственна!) и печатает значение M + 18.

Задача не такая простая, поиск минимума функции – дело ответственное.
Потому что нужно не только найти точки минимума функции, но и обязательно проверить, попадают ли эти точки в заданный диапазон от a до b. Диапазон могут задать и так, что все точки минимума окажутся вне диапазона. И как быть в таком случае?
Конечно, можно построить график функции на заданном отрезке [a, b], определить участки, где функция монотонно возрастает/убывает и найти точки минимума. Или сделать то же самое с помощью производной. Но, поскольку функция имеет специальный вид, обойдёмся и без графика, и без производной.

Итак, нужно найти минимум дискретной функции 2(x*x – 9)*(x*x – 9) + 5, заданной в целочисленных точках отрезка [-20, +20].
Не будем пока обращать внимание на диапазон.
1. Минимум функции 2(x*x – 9)*(x*x – 9) + 5 находится в тех же точках, что и минимум функции 2(x*x – 9)*(x*x – 9).
2. Минимум функции 2(x*x – 9)*(x*x – 9) находится в тех же точках, что и минимум функции (x*x – 9)*(x*x – 9).
(Вот если бы умножали на –2, тогда бы минимум функции –2(x*x – 9)*(x*x – 9) соответствовал максимуму функции (x*x – 9)*(x*x – 9)).
3) Функция (x*x – 9)^2 всегда неотрицательна, потому что это квадрат.
Минимальное значение квадрата – 0.
(x*x – 9)^2 = 0, x*x – 9 = 0, x*x = 9
x1 = –3, x2 = 3.
Обе точки попадают в заданный диапазон.
Но вначале в цикле встречаем точку –3 и запоминаем её в M как точку минимума. Для точки 3 условие уже не выполнится.

Ответ: 15 .

Теперь рассмотрим случай, когда обе точки минимума не попадают в заданный диапазон.
Например, был бы задан диапазон [–20, –10] или [10, 20].
Рассмотрим диапазон [–20, –10].
Так как x в квадрате, то чем больше абсолютная величина |x|, тем больше (x*x – 9)^2. На отрезке [–20, –10] функция (x*x – 9)^2 монотонно убывает, максимум в точке –20, минимум в точке –10.
Аналогично, на отрезке [10, 20] функция монотонно возрастает, минимум в точке 10, максимум в точке 20.

https://forum.sources.ru/index.php?showtopic=419229&view=findpost&p=3835034

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку