Так что у меня небольшая проблема с рекурсией. Я вижу, что есть много вопросов относительно того, как найти последовательность Фибоначчи, используя рекурсию, но я решил это (по большей части) сам по себе. Вместе с тем я пытаюсь найти сумму всех фибоначковых чисел до определенной величины. Например, если я ввожу номер 3, я должен получить четыре. Если я ввод число 10, мой итог должен быть 143. Таким образом, в основном:Вычисление суммы последовательности Фибоначчи с использованием рекурсии MATLAB
Test Cases:
out1 = sumFib(3);
out1 = 4;
out2 = sumFib(10);
out2 = 143;
out3 = sumFib(28);
out3 = 832039
Я изо всех сил немного понимания, как получить базовый вариант (или прекращения фактор). Вот то, что я до сих пор для моего кода:
function out = sumFib(n)
if n==1 || n==2
out = 1;
else
out =sumFib(n-1) + sumFib(n-2) ;
%// Gives us the value of n-1 and adds it to the value of n-2
end
end
Это дает мне то, что значение числа находится на п-м положении. Для того, чтобы найти общую сумму, я попытался следующие
if n==3
out = 4
else
out = sumFib(n) + sumFib(n - (n-1))
Как вы CNA себе представить, это флаги мне с
"Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N) to change the limit. Be aware that exceeding your available stack space can crash MATLAB and/or your computer."
Я также попытался сделать:
function out = sumFib(n)
if n==1 || n==2
out = 1;
else
out =(1+sumFib(n-1)) + sumFib(n-2) ;
%Gives us the value of n-1 and adds it to the value of n-2
И с использованием правильного суммарного аспекта для последовательности Фибоначчи
if n==3
out = 4;
else
out = sumFib(n+2)-1;
end
Здесь 1 - моя попытка сообщить проблеме, чтобы перейти к следующему номеру, но это не сработает. Если бы кто-нибудь мог лучше объяснить базовое условие для меня и помочь, я был бы признателен.
У вас есть * для использования рекурсии? Где-то в Stackoverflow, я думаю, я видел вексеризованную версию. Возможно, мне снится. – Divakar
Мне нужно использовать рекурсию. Я попытался сделать версию массива на самом деле, но это не совсем сработало с тем, что я пытался сделать. Или я не мог заставить его работать. –
обратите внимание на следующее: https://proofwiki.org/wiki/Sum_of_Sequence_of_Fibonacci_Numbers – Amro