excel — итерации в VBA — сопоставимый метод в переполнении стека

Использование кода VBA я нашел в электронной таблице для адаптации к онлайн-приложению PHP. Код использует метод деления пополам в математике, чтобы найти оптимальное значение для расчета, необходимого для оценки цены.

Upper = estimate_upper
Lower = estimate_lower
UUpper = container

Start_Iteration:

IterationCountE = 0.000000001
While (Upper - Lower) > IterationCountE
Mid = (Upper + Lower) / 2

c1 = calculations1...
c2 = calculations2...

If (c2 - c1) > 0 Then
Lower = Mid
Else
Upper = MId
End If

Wend 'Ends the while loop

If (Round(Mid, 4) = Round(UUpper, 4)) Then
Upper = 2 * UUpper
UUpper = Upper
GoTo Start_Iteration
End If

Function = Mid

По большей части я понимаю механику итерации. Моя попытка преобразования PHP выглядит следующим образом:

$IterationCountE = 0.00000000001;

while ( ($Upper - $Lower) > $IterationCountE ) {

$Mid = ($Upper + $Lower) / 2;

$c1 = calculation1();
$c2 = calculation2();

if ( ($c2 - $c1) > 0 ) {
$Lower = $Mid;
} else {
$Upper = $Mid;
}

if (round($Mid, 4) == round($UUpper, 4)) {
$Upper = 2 * $UUpper;
$UUpper = $Upper;
}
}

return $Mid;

Это лучший способ приблизиться к подобной итерации в PHP? Было бы лучше обернуть итерацию в функцию и вернуться к ней, как в коде VBA?

Я не получаю те же результаты значения при сравнении вывода PHP со значением из макроса.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]