Mam pewne zadanie do zrobienia z ciągiem Fibonacciego który ma pokazać liczby w jakimś przedziale. Np. 6 liczba tego ciągu to 8, a 15 to 610 i ma pokazać liczby ciągu od 6-15. Pomoże ktoś?
Bardzo chętnie pomożemy. Z czym masz problem?
@kq: Co należy zrobić żeby pokazywało liczby ciągu od 6?
Zobacz najpierw na sam algorytm znajdowania n
tej liczby:
https://en.wikipedia.org/wiki/Fibonacci_number
https://www.geeksforgeeks.org/program-for-nth-fibonacci-number/
a potem pomyśl, jak optymalnie znaleźć wyniki z zakresu
Podajecie młodemu kotu rekurencyjne rozwiązanie (GeeksForGeeks) a zapewne chodzi prowadzącemu zajęcia o proste, iteracyjne, dlatego chce wyniki od ... do ...
I takie też przynajmniej policzy się na laptopie od 45 do 60 zanim ludzkość wymrze jak dinozaury.
Podaję kotu wędkę w Java ;)
public static Long[] fibonacci(int n) {
Long[] fibonacciNumbers = new Long[n + 1];
fibonacciNumbers[0] = 0L;
fibonacciNumbers[1] = 1L;
int idx = 2;
while (idx <= n) {
fibonacciNumbers[idx] = fibonacciNumbers[idx - 1] + fibonacciNumbers[idx - 2
];
idx++;
}
return fibonacciNumbers;
}
OP @Michał Jarczak: poszukaj sobie w sieci wytłumaczenia tego kodu jakbyś miał z nim kłopot
Zasada jest prosta:
Fibonacci od 0 to 0
Fibonacci od 1 to 1
Fibonacci od każdej następnej liczby to suma dwóch wcześniejszych liczb Fibonacciego. Masz je w tablicy i takie zapełnianie po kolei tablicy to twoje rozwiązanie. Bardzo szybkie i proste rozwiązanie.
Szybkie, bo ze zwykłej definicji rekurencyjnej AFAIR około 45 już laptop zdechnie na złożoności obliczeniowej.
To ewidentnie zadanko ze szkoły/na studia, więc wystarczy proste rozwiązanie. A takim jest stworzenie dwóch pętli — pierwsza pętla wyznacza element początkowy, a druga od niego wyznacza kolejne, aż do ostatniego.
@BraVolt: nie pomożesz OP rzucając losowego gotowca z sieci, w dodatku jakiegoś dziwnego.