Парабола — где твоя вершина? (B14)

Определите, какое число будет напечатано в результате выполнения следующего алгоритма

program parabola;
var
	a, b, t, M, R:integer;
function F(x:integer):integer;
begin
F := 2 * (x + 3) * (x - 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)
end.

Данная программа определяет координату x в которой значение функции f(x)=x^2-2x-15 (получается путем преобразования выражения под функцией F в программе) принимает минимальное значение. График данной функции на картинке.

График-B9

Искомая точка находится в вершине параболы и определяется по формуле: x_v=-\frac{b}{2a}=1. Реализация задачи производится в цикле. Рассмотрим подробнее код программы;
11 — заголовок цикла определяет начальное и конечное значение параметра (в данном случае рассматриваемый отрезок [-20,20]);
12 — в условном операторе сравнивается текущее значение с предыдущим значением функции F. Очевидно, что логическое выражение будет принимать значение TRUE до t = 1 (далее, вплоть до конца отрезка, значение логического выражения FALSE) и
14 — последнее значение M будет равным 1;
17 — вывод этого значения.

Вариации задачи:

  • вывод максимального значения функции (на отрезке)
  • вывод минимального значения функции
  • вывод x когда f(x) max
  • и вывод x когда f(x) min

Если говорить о параболе, то вершина может не попадать на рассматриваемый отрезок, следовательно, нужно проверить значения функции на концах отрезка. В демоверсии ЕГЭ-2014 (очевидно, что задание излишне усложнено) функция параболы — биквадратная. Помимо функции и значений концов отрезка, задача полностью совпадает с рассматриваемой выше задачей. Особенность графика параболы демоверсии (f(x)=2(x^2-16)(x^2-16)+5 на рис. ниже) то, что она имеет не одну, а целых 3 вершины! Однако, понятно, что значение вершины с координатой x = -4 (на выводе x + 6, т. е. 2 :)) и будет ответом к задаче, поскольку далее функция не принимает значения меньше, чем в точке x = -4.
figure_1

Вывод: знания программирования минимальны (поскольку программу достаточно внимательно прочитать, исправлять и создавать не нужно), а знания алгебры и анализа максимальны.

Добавить комментарий