{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
kvils * 14.41
[автор] (4 мар 2015, 23:55) [0/0] [0] [отв] [спам] [под] +1 | -1

Есть код:
[code]<?PHP
// $pre и $pre_pre, как и в тот раз - предыдущий и предпредыдущий элемент.
// $n номер элемента, который мы ищем, НО реально смысл в этой переменной несколько другой.
// Она хранит в себе количество элементов, которое осталось посчитать
// Считать сумму начинаем с 3го элемента.
function fib($n, $pre = 1, $pre_pre = 0)
{
if ($n == 1) return 1;
if ($n < 1) return false;
if ($n == 2) // начинали с 3го, поэтому выходим, когда осталось посчитать два.
return $pre;

return fib($n - 1, $pre + $pre_pre, $pre);
}


echo fib(5);
?>
[/code]
если мы в fib(5) вносим 5 выводит 3, если же fib(10), если 10 выводит 34, вот я взял листик карандашик и как бы не считал но 34 у меня не получается. В чем суть? Хочу понять суть работы данного кода, обчислить то что считает он на листику.Подскажите как это сделать?
Добавлено 05.03.15 в 03:08:09:
Ответ: 0,1,1,2,3,5,8,13,21,34 для fib(10)
0,1,1,2,3 для fib(5)
Додаются два последних числа, 0 и 1 первые две цифры которые додаются, их сумма равна 1 таким образом у нас уже три числа: 0,1,1(0+1). Как известно нам два последних числа мы суммируем в результате две единицы нам дали двойку и уже у нас четыре числа: 0,1,1,2, продолжаем в том же духе так мы получим числа 3, 5, 8, 13, 21, 34, 55(ну это уже если бы у нас было fib(11) ).

2.
bibilink * 19.01
(5 мар 2015, 17:08) [1/0] [1] [отв] [спам] [под] +1 | -1

https://ru.m.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%A4%D0%B8%D0%B1%D0%BE%D0%BD%D0%B0%D1%87%D1%87%D0%B8

3.
kvils * 14.41
[автор] (5 мар 2015, 18:01) [0/0] [0] [отв] [спам] [под] +1 | -1

VTR1m, спасибо))

  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений