Sappiamo tutti fibonacci serie, quando k = 2.Algoritmo per la k-Fibonacci
cioè .: 1,1,2,3,5,8,13
Ma questo è il 2-Fibonacci. In questo modo, posso contare il terzo Fibonacci:
1,1,2,4,7,13,24
E il 4 Fibonacci:
1,1,2,4,8,15,29
... e così va avanti
Quello che sto chiedendo è un algoritmo calcolare un elemento 'n' all'interno di una serie k-fibonacci.
In questo modo: se chiedo il fibonacci(n=5,k=4)
, il risultato dovrebbe essere: 8
, ovvero il quinto elemento all'interno della serie 4-fibonacci.
Non l'ho trovato da nessuna parte sul web. Una soluzione per aiutare potrebbe essere mathworld
Chiunque? E se conosci Python, preferisco. Ma se no, qualsiasi linguaggio o algoritmo può aiutare.
Tip penso che può aiutare: Analizziamo la serie K-Fibonacci, dove k sarà vanno da 1 a 5
k fibonacci series
1 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, ...
2 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
3 1, 1, 2, 4, 7, 13, 24, 44, 81, ...
4 1, 1, 2, 4, 8, 15, 29, 56, 108, ...
5 1, 1, 2, 4, 8, 16, 31, 61, 120, ...
Analizzando questo, possiamo vedere che l'array [0: k] su la serie k-fibonacci è uguale alla serie precedente di fibonacci e va avanti fino al k = 1
ie (proverò a mostrare, ma non sto trovando il modo giusto per dirlo):
k fibonacci series
1 1,
2 1, 1,
3 1, 1, 2,
4 1, 1, 2, 4,
5 1, 1, 2, 4, 8,
Spero di aver contribuito in qualche modo a risolvere questo.
[SOLUZIONE in python (se qualcuno ha bisogno)]
class Fibonacci:
def __init__(self, k):
self.cache = []
self.k = k
#Bootstrap the cache
self.cache.append(1)
for i in range(1,k+1):
self.cache.append(1 << (i-1))
def fib(self, n):
#Extend cache until it includes value for n.
#(If we've already computed a value for n, we won't loop at all.)
for i in range(len(self.cache), n+1):
self.cache.append(2 * self.cache[i-1] - self.cache[i-self.k-1])
return self.cache[n]
#example for k = 5
if __name__ == '__main__':
k = 5
f = Fibonacci(k)
for i in range(10):
print f.fib(i),
@Amber, @Itay: grazie per i suggerimenti. Qualche algoritmo per risolvere questo? Sono davvero perso su questo problema. –
@ Gabriel - Non sei proprio sicuro di cosa intendi per algoritmo? Il calcolo dei numeri di Fibonacci non è molto complesso ... – Amber
Ho trovato qualche articolo a riguardo *** LA FORMULA BINET GENERALIZZATA ***. Inserito il link nella mia risposta. La versione di Python –