Wie erzeuge ich eine Potenzmenge einer gegebenen Menge?

8

Ich lerne für ein Interview und bin online auf diese Frage in der Kategorie "Mathematik" gestoßen.

Generiere die Potenzmenge der gegebenen Menge:

%Vor%

Bitte ich möchte keine explizite Antwort. Ich möchte nur Klarstellungen und Hinweise, wie man dieses Problem angehen kann.

Ich habe den Power-Set-Algorithmus bei Google überprüft und verstehe immer noch nicht, wie ich dieses Problem angehen soll.

Auch könnte jemand wiederholen, was die Frage verlangt.

Danke.

    
Ralph 23.06.2014, 12:28
quelle

6 Antworten

15

Power set of a set A is the set of all of the subsets of A.

Nicht die freundlichste Definition der Welt, aber ein Beispiel hilft:

z. Für {1, 2} sind die Teilmengen: {}, {1}, {2}, {1, 2}

Somit ist die eingestellte Leistung {{}, {1}, {2}, {1, 2}}

Beobachten Sie zum Generieren der Potenzmenge, wie Sie eine Teilmenge erstellen: Sie gehen nacheinander zu jedem Element und behalten es entweder bei oder ignorieren es.

Lassen Sie diese Entscheidung durch ein Bit (1/0) angezeigt werden.

Um also {1} zu generieren, wählen Sie 1 und drop 2 (10).

Auf ähnliche Weise können Sie einen Bitvektor für alle Teilmengen schreiben:

  • {} - & gt; 00
    {1} - & gt; 10
    {2} - & gt; 01
    {1,2} - & gt; 11

Um es noch einmal zu wiederholen: Eine Teilmenge wird gebildet, indem einige oder alle Elemente der ursprünglichen Menge eingeschlossen werden. Um also eine Teilmenge zu erstellen, gehen Sie zu jedem Element und entscheiden dann, ob Sie es behalten oder löschen möchten. Dies bedeutet, dass Sie für jedes Element 2 Entscheidungen haben. Für eine Menge können Sie also 2^N verschiedene Entscheidungen treffen, die 2^N verschiedenen Untergruppen entsprechen.

Sehen Sie, ob Sie es von hier abholen können.

    
axiom 23.06.2014, 12:39
quelle
6
  

Erstellen Sie ein Power-Set von: {"A", "B", "C"} .

Pseudocode:

%Vor%

Algorithmus-Erklärung:

1) Initialisiere sets auf eine leere Menge: {} .

2) Wiederholen Sie jedes Objekt in {"A", "B", "C"}

3) Wiederhole jedes set in deinem sets .

3.1) Erstellen Sie einen neuen Satz, der eine Kopie von set ist.

3.2) Hängen Sie die item an die new set an.

3.3) Hängen Sie new set an sets an.

4) Fügen Sie das item zu Ihrem sets hinzu.

4) Die Iteration ist abgeschlossen. Füge den leeren Satz zu deinem resultSets hinzu.

Exemplarische Vorgehensweise:

Schauen wir uns den Inhalt von sets nach jeder Iteration an:

Iteration 1, item="A":

%Vor%

Iteration 2, item="B":

%Vor%

Iteration 3, item="C":

%Vor%

Iteration abgeschlossen, füge leere Menge hinzu:

%Vor%

Die Größe der Sets ist 2 ^ | set | = 2 ^ 3 = 8 was richtig ist.

Beispielimplementierung in Java:

%Vor%

Eingabe: [A, B, C]

Ausgabe: [[A], [A, C], [A, B], [A, B, C], [B], [B, C], [C], []]

    
Cristian 23.03.2016 17:03
quelle
5

Potenzmenge ist nur für alle Untergruppen für die gegebene Menge gesetzt. Es enthält alle Teilmengen (mit leerer Menge). Es ist bekannt, dass es in dieser Menge 2 N -Elemente gibt, wobei N die Anzahl der Elemente in der ursprünglichen Menge ist.

Um Power Set zu erstellen, kann folgende Sache verwendet werden:

  • Erstellen Sie eine Schleife, die alle Ganzzahlen von 0 bis 2 iteriert N -1
  • Gehen Sie zur Binärdarstellung für jede ganze Zahl
  • vor
  • Jede binäre Repräsentation ist eine Menge von N Bits (für kleinere Zahlen fügen Sie führende Nullen hinzu). Jedes Bit entspricht, wenn das bestimmte Mengenelement in der aktuellen Teilmenge enthalten ist.

Beispiel, 3 Zahlen: a , b , c

%Vor%     
Alma Do 23.06.2014 12:37
quelle
4

Nun, Sie müssen alle Teilmengen generieren. Für eine Menge von Größe n gibt es 2 n Untergruppen.

Ein Weg wäre, über die Zahlen von 0 bis 2 n -1 zu iterieren und wandle jedes in eine Liste von Binärziffern um, wobei 0 bedeutet ausschließen Dieses Element und 1 bedeutet, dass es eingeschlossen ist.

Ein anderer Weg wäre Rekursion, Teile und Herrsche.

    
Tom Zych 23.06.2014 12:36
quelle
1

Generieren aller Kombinationen eines Satzes (durch Einschließen oder Nicht-Hinzufügen eines Elements). mit einem Beispiel erklären: 3 Elemente in einem Set (oder einer Liste). Die mögliche Teilmenge ist:

%Vor%

Das Ergebnis ist 2 ^ (Anzahl der Elemente in der Menge).

Als solche können wir alle Kombinationen von N Elementen (mit Python) wie folgt erzeugen:

%Vor%     
Amjad 25.12.2016 20:10
quelle
0

Beispiel-Java-Code:

%Vor%     
ashwanilabs 06.11.2016 10:43
quelle

Tags und Links