PDA

View Full Version : [Java] Particolare operazione su insieme


Groove89
26-12-2010, 18:28
Ciao a tutti. Per farvi capire cosa dovrei fare vi faccio un esempio.

Dato questo insieme int[] stati = {0,1,2};

Devo ottenere questo insieme: {{0},{1},{2},{0,1},{0,2},{1,2},{0,1,2}}
Per precisione, il risultato un oggetto di questo tipo:
LinkedList<Stato> ... ecc.. dove Stato è un oggetto che ha un parametro
di tipo Set<Integer> elementi. C'è chiaramente uno schema ma mi sto scervellando senza trovare una soluzione... help :mc:

Ps: Per sicurezza faccio un'altro esempio.

Insieme di partenza: int[] stati = {0,1,2,3};
Risultato: {{0},{1},{2},{3},{0,1},{0,2},{0,3},{1,2},{1,3},{2,3},{0,1,2},{0,2,3},{1,2,3}}

british
27-12-2010, 13:25
Stando al primo esempio e tralasciando che manchi il sottoinsieme vuoto {} mi pare che tu stia cercando l'insieme delle parti del tuo insieme di partenza (il power set in Inglese). Se così fosse però nel secondo esempio oltre all'insieme vuoto mancherebbero anche i sottoinsiemi {0,1,3} e {0,1,2,3}... una svista?

Su internet puoi facilmente trovare l'implementazione dell'algoritmo, sia in versione ricorsiva che iterativa (molto più furba).

ciao!

british