История изменений
Исправление beastie, (текущая версия) :
Вопрос скорее, правильный ли подход, а записать то не проблема.
#define EPS 1e-6
float
area(float alpha)
{
/* ... */
}
float
find_alpha(float start) {
float a1 = area(start + start/2);
float a2 = area(start - start/2);
if (abs(a1 - a2) < EPS)
return start;
else if (a1 < a2)
return find_alpha(a1);
else
return find_alpha(a2);
}
Как-то так, если ничего не путаю.
Исходная версия beastie, :
Вопрос скорее, правильный ли подход, а записать то не проблема.
#define EPS 1e-6
float
area(float alpha)
{
/* ... */
}
float
find_alpha(float start) {
float a1 = area(start + start/2);
float a2 = area(start - start/2);
if (abs(a1 - a2) < EPS)
return start;
else if (a1 < a2)
return find_alpha(a1);
else
return find_alpha(a2);
}
Как-то так, если ничего не путаю.