Просмотр содержимого документа
«27.3.Ещё пример задания»
Ещё пример задания:
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=4*(x-1)*(x-3);
end;
BEGIN
a:=-20; b:=20;
M:=a; R:=F(a);
for t:=a to b do begin
if (F(t)
M:=t;
R:=F(t);
end;
end;
write(M);
END.
Решение (способ 1, ручная прокрутка, перебор):
заметим, что в программе есть цикл, в котором переменная t принимает последовательно все целые значения в интервале от a до b:
for t:=a to b do begin
...
end;
до начала цикла в переменную M записывается значение a, а в переменную R – значение функции в точке a:
M:=a; R:=F(a);
внутри цикла есть условный оператор, в котором вычисляется значение функции F(t) и сравнивается со значением переменной R:
if (F(t)
M:=t;
R:=F(t);
end;
если новое значение функции меньше, чем значение R, в R записывается значение функции в точке t, а в переменной M запоминается само значение t (аргумент функции, соответствующий значению в R)
в результате анализа пп. 1-3 можно сделать вывод, что цикл ищет минимум функции F(t) на интервале от a до b, и после выполнения цикла в переменной M оказывается значение аргумента t, при котором функция достигает минимума на заданном интервале (здесь это интервал [-20, 20])
функция F вычисляет значение
F:=4*(x-1)*(x-3);
перебираем все значения t от a до b, и для каждого вычисляем соответствующее значение функции:
t | -20 | -19 | -18 | -17 | -16 | -15 | -14 | -13 | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 0 |
F | 1932 | 1760 | 1596 | 1440 | 1292 | 1152 | 1020 | 896 | 780 | 672 | 572 | 480 | 396 | 320 | 252 | 192 | 140 | 96 | 60 | 32 | 12 |
| | | | | | | | | | | | | | | | | | | | | |
t | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
F | 0 | -4 | 0 | 12 | 32 | 60 | 96 | 140 | 192 | 252 | 320 | 396 | 480 | 572 | 672 | 780 | 896 | 1020 | 1152 | 1292 | |
по таблице находим, что минимальное значение –4 достигается при t=2
таким образом, ответ: 2.
Возможные проблемы: заполнение таблицы, особенно при большом интервале, очень трудоемко, велика возможность ошибки |
Решение (способ 2, математический анализ):
повторяя рассуждения пп. 1-5 из предыдущего способа решения, находим, что программа ищет значение t, при котором функция F(t) принимает минимальное значение на интервале от a до b.
запишем функцию в виде квадратного трёхчлена:
график этой функции – парабола, оси которой направлены вверх, поэтому функция имеет минимум
найдем абсциссу точки минимума, которая совпадает с абсциссой точки минимума функции
таким образом, ответ: 2.
Решение (способ 3, математический анализ, свойства параболы):
повторяя рассуждения пп. 1-5 из первого способа решения, находим, что программа ищет значение t, при котором функция F(t) принимает минимальное значение на интервале от a до b.
заданная функция имеет корни в точках
график этой функции – парабола, оси которой направлены вверх (коэффициент при равен 4 0), поэтому функция имеет минимум
парабола симметрична относительно вертикальной прямой, проходящей через вершину, поэтому абсцисса вершины – это среднее арифметическое корней:
таким образом, ответ: 2.