View Full Version : [JAVA] Problema funzione combinazioni
Mi è sorto un altro problema. Mi servirebbe una funzione che prende in ingresso un array di dimensione variabile, questo array è fatto da int.
Io voglio che la funzione mi restituisca tutte le combinazioni di interi.
Esempio: L'array A è lungo 3 e contiene i seguenti valori,
A[0]=1
A[1]=2
A[2]=1
In uscita voglio ottenere:
121
120
111
110
101
100
021
020
011
010
001
000
Come posso fare? L'array iniziale può avere lunghezza variabile.
wingman87
26-11-2010, 14:33
Dall'esempio che hai fatto mi pare di capire che parli di combinazioni con ripetizione di n elementi presi k alla volta con n pari alla lunghezza dell'array e con k che va da 0 a n. Inoltre consideri 0 elemento nullo.
E' corretto?
Hai tenuto in considerazione il fatto che bastano pochi elementi per ottenere un numero di combinazioni elevatissimo?
Ad ogni modo per risolvere il problema puoi prima di tutto calcolare il set di elementi dell'array iniziale (nel tuo esempio {1,2}). Fatto questo per ogni cardinalità generi tutti i possibili insiemi con ripetizione con gli elementi del set che hai calcolato (è un po' come contare solo che le cifre che hai a disposizione, invece di essere 0..9, sono quelle del set).
Esatto, è come contare, solo che ogni "casella" di questo ipotetico timer ha una base sua e considero lo 0 come elemento nullo.
Resta il fatto che non riesco a capire come fare...
wingman87
26-11-2010, 19:29
Come fare cosa? Contare? Puoi farlo in vari modi, in generale l'incremento può essere fatto in questo modo:
dato un vettore con n celle
partendo da i=0
-incremento la i-esima cella
-se sforo la azzero e passo alla successiva
-se non sforo ho finito
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.