View Single Post
Old 21-09-2005, 17:52   #4
hakermatik
Member
 
L'Avatar di hakermatik
 
Iscritto dal: May 2003
Messaggi: 271
Quote:
Originariamente inviato da /\/\@®¢Ø
Non hai specificato in che linguaggio ti interessa, per cui ti daro' l'algoritmo in python .

E' abbastanza semplice se lo pensi in modo ricorsivo, partendo dal caso piu' semplice e aggiungendo man mano elementi.
I sottoinsiemi dell'insieme vuoto e' dato dall'insieme contenente solo l'insieme vuoto.
A questo punto, se abbiamo i sottoinsiemi P(X) di un insieme X, i sottoinsiemi di X u {x} sono dati da P(X) u { {x} u Y | Y in P(X) }, ovvero utti i sottoinsiemi di X piu' tutti i sottoinsiemi di X a cui abbiamo aggiunto il nuovo elemento.

La "traduzione" in algoritmo e' immediata (te la faccio in python per semplicita'):
Codice:
def subsets(x):
    if x == []:
        return [[]]
    else:
        subs = subsets(x[1:])
        return subs + [ [x[0]] + xs for xs in subs ]
scrivo per conto di oceans11.... potreste postarmi il codice in C.... thanks
__________________
Sono serissimo .. in coda. (cit. Nabrez)
hakermatik è offline   Rispondi citando il messaggio o parte di esso