Я столкнулся с очень хорошей реализацией серии Фибоначчи, но у меня возникли проблемы с пониманием, как именно она работает. Вот две реализации, которые я попробовал, чтобы выяснить проблему:
<?php
fibo(1000);
fibo2(1000);
function fibo($n){
list($a, $b) = [0, 1];
while($a<=$n){
echo $a . " ";
list($a, $b) = [$b, $a + $b];
}
echo "\n";
}
function fibo2($n){
$a = 0;
$b = 1;
while($a<=$n){
echo $a . " ";
$a = $b;
$b = $a + $b;
}
echo "\n";
}
?>
Приведенные выше две функции дают следующие результаты соответственно: fibo: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 fibo2: 0 1 2 4 8 16 32 64 128 256 512
Не могли бы вы объяснить, почему возникают разные результаты?