Есть ли заметная разница во времени вычислений между фибоначчими типа Фибоначчи в стиле рекурсии и фибоначчи в стиле петли? Я продолжаю работать с Фибоначчи до 40 мест, используя рекурсию, а затем используя цикл сразу после этого. Кажется, что разница во времени вычисления составляет только академический.Время вычисления Фибоначчи
Написано в C
рекурсивной решение:
int main(int argc, const char * argv[]) {
int n, i = 0, c;
printf("Please enter an integer:\n");
scanf("%d", &n);
for (c = 1 ; c <= n ; c++)
{
printf("%lu ", fibonacci(i));
i++;
}
return 0;
}
long fibonacci(long n)
{
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return (fibonacci(n-1) + fibonacci(n-2));
};
для цикла решения:
int main(int argc, const char * argv[]) {
int n, first = 0, second = 1, next, c;
printf("Please enter an integer:\n");
scanf("%d", &n);
for (c = 0 ; c < n ; c++)
{
if (c <= 1)
next = c;
else
{
next = first + second;
first = second;
second = next;
}
printf("%d ",next);
}
return 0;
};
Похоже, вы уже ответили на свой вопрос в первом абзаце. –
Время выполнения для одного вычисления не будет значительным. Если вы хотите сравнить, вам нужно вычислить много (10^7?) Раз. – mattm
Интересно. В последнее время я очень заинтересовался последовательностью Фибоначчи. Как его обнаружено в столь многих представлениях в природе красиво и как эта последовательность используется так часто в бенчмаркингах. –