Ci
è sicuramente.
In primo luogo, cerchiamo di ricordare che il numero di Fibonacci n-esimo è uguale
φ (n) = [φ^n - (-φ)^(- n)]/√5
dove φ = (√ 5 + 1)/2 (Golden Ratio) e (-φ)^(- 1) = (1-√5)/2. Ma per renderlo più breve, denoti φ come A e (-φ)^(- 1) come B.
Poi, notiamo che una somma di numeri di Fibonacci è una somma di potenze di A e B:
[φ (n) + φ (m)] * √5 = a^n + a^m - B^n - B^m
Ora, ciò che è sufficiente per calc (nell'esempio {1,2,3}
) è
A^1 + A^2 + A^3 + A^{1 + 2} + A^{1 + 3} + A^{2 + 3} + A^{1 + 2 + 3}.
Ma hey, c'è un'espressione più semplice per questo:
(A^1 + 1) (A^2 + 1) (A^3 + 1) - 1
Ora, è il momento per ottenere l'intero risultato.
Lasciate che il nostro set sia {n1, n2, ..., nk}
. Allora la nostra somma sarà pari a
Sum = 1/√5 * [(A^n1 + 1)(A^n2 + 1)...(A^nk + 1) - (B^n1 + 1)(B^n2 + 1)...(B^nk + 1)]
Credo che, matematicamente, questa è la forma della risposta "più semplice", come non c'è alcuna relazione tra n_i. Tuttavia, potrebbe esserci spazio per l'ottimizzazione computativa di questa espressione. In effetti, non sono affatto sicuro se questo (usando numeri reali) funzionerà più velocemente del sommario "diretto", ma la domanda era di evitare la generazione di sottoinsiemi, quindi ecco la risposta.
Ti non considerare l'insieme vuoto un sottoinsieme? – Joni
@Joni No ........ –
Bella domanda !! – Mike