Изменения

Перейти к: навигация, поиск

Вещественный двоичный поиск

9 байт убрано, 19:34, 5 июня 2014
Псевдокод
== Псевдокод ==
<pre>
findLeft(c) : x = -1;
while f(x) > c
x = x * 2; return x;
</pre>
<pre>
findRight(c): x = 1;
while f(x) < c
x = x * 2; return x;
</pre>
<pre>
binSearch(c): left = findLeft(с); right = findRight(с);
while left < right - eps //Здесь можно использовать другое условие выхода
mid = (left + right) / 2;
if f(mid) == c //**
return mid; //**
else if f(mid) < c
left = mid;
else
right = mid; return l;
</pre>
 
== Примеры использования ==
* Классической задачей на вещественный двоичный поиск является задача поиска корня <tex>n</tex>-ой степени из числа <tex>x</tex>: <tex>\sqrt[n]{x}</tex>. При <tex>x \ge 1</tex> нижней границей для поиска будет <tex>1</tex>, а верхней {{---}} <tex>x</tex>.
333
правки

Навигация