Ограничения: время – 200ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Напишите функцию ``Bisection``, псевдокод для которой написан ниже.
```c
...
double r=Bisection(sin,2.0,4.0,50);
// r=3.1415926
...
```
В качестве решения необходимо отправлять файл, содержащий только определение функции!
Алгоритм Bisection(`f, a, b, n`)
// Входные данные: непрерывная на `[a, b]` функция `f(x)`,
// `f(а)*f(b) < 0`, количество итераций `n`
// Выходные данные: Приближенное значение `x`
// корня уравнения `f(x)=0` на отрезке `[a,b]`
**while** `n>0` **do**
`quad x larr (a + b)//2`
`quad val larr f(x)`
`quad` **if** `val = 0`
`quad quad` **return** `x`
`quad` **if** `val*f(a) <0`
`quad quad b larr x`
`quad` **else**
`quad quad a larr x`
`quad n larr n-1`
**return** `a`