Вот сидел и решил просто вывести все числа фибоначчи до 100... незнаю, то ли это из-за ночи, но я никак немогу этот алгоритм продумать... с таблицей пифагора быстро справился, а вот до этого никак немогу додуматься. Пожалуйста дайте мне маленькую подсказку... мне не нужно готовое решение... я это ради мышления хочу просто додуматься... маленькую подсказку...
э-э-э... ну... создаешь массив, вбиваешь в него два элемента (1 и 1) и в цикле вычисляешь fibb[n]=fibb[n-1]+fibb[n-2] выход из цикла по fibb[n]>100 и вперед
тут [n] например показывает fibb[1], fibb[2], fibb[3] ... ??? До меня что-то недоходит... сяду еще раз хорошенько подумаю...
блин... все гениальное просто... Код (Text): <?php $fibo1=1; $fibo2=1; for ($i=0; $i<=100; $i++) { $fibo=$fibo1+$fibo2; $fibo2=$fibo1; $fibo1=$fibo; print $fibo."<br>"; } ?>
видел в какой-то книге PHP: <?php function fib($n) { if($n == 0 || $n==1) { return 1; }else { return fib($n-2)+fib($n-1); } } ?>
угу, книги такое пишут. Только стек переполнится раньше 100. домашнее задание: сделать линейную, а не квадратичную рекурсию.
Вот после таких книг и выростают "быдло-кодеры" после которых переписывать всё заново надо. +1 Курите люди массивы, и никакой рекурсии... PHP: <?php $array = array(1, 1); while (is_int(end($array))) array_push($array, end($array) + prev($array)); print_r($array); ?>
Vladson почему в твоем примере выводятся только 46 чисел фибоначчи??? P.S. у меня php смогла отобразить только до 1473 числа: 1473= 1.30698922376E+308
dark-demon, более того, для расчета значения любого члена последовательности Фибоначи вообще не надо знать два его предыдущих.
Сначала нужно выяснить, что ты называешь иррациональными дробями. Лично я о таких первый раз слышу. Уж не выдумал ли ты их?
Да, есть рациональные числа, есть иррациональные числа… Есть рациональные дроби, но иррациональных дробей нет. А нет их потому, что их нельзя наградить какими-либо свойствами, которые отсутствуют у уже введенных типов дробей. Не выдумывай // Ну и с приставкой ты маху дал, она в слове иррациональный не «и» а «ир».
Эта формула не дает "иррациональных дробей". Все значения являются целыми числами. Я так понимаю, ты хотел намекнуть про ошибки вычислений по этой формуле? Так ошибка вычислений зависит в первую очередь от погрешности вычислительной техники. Если считать на деревянных счетах, то ошибка будет одна, а на калькуляторе 60-х годов - другая. Если считать на калькуляторе, где количество значащих цифр ~15, тогда я задам тебе наводящий вопрос аналогичный этому: начиная с какого n числа последовательности Fn=3^n у нас становятся "иррациональными дробями"? :wink: