Quote Originariamente inviata da andbin Visualizza il messaggio
Fai tutte le combinazioni possibili prendendo ciascun valore nell'array 0 o 1 volta.
Detto con il tuo esempio: quanti numeri ci sono in v? 4 E quante somme "combinate" puoi fare? 2^4 = 16.

codice:
4 7 3 1   somma
---------------
0 0 0 0   0
0 0 0 1   1
0 0 1 0   3
0 0 1 1   4
0 1 0 0   7
.....
Già avevo pensato ad una soluzione simile, dato che è maggiormente ottimizzato poiché esegue 2^x iterazioni, mentre il mio esempio è qualcosa come x*(x!), dunque il risparmio è notevole.
Il problema è che impossibile da implementare, cioè non saprei proprio da dove iniziare.
Si potrebbe fare un vettore di boolean in cui ogni esponente di due cambi il valore di se stesso e del suo vicino, ci ragionerò su.