Kann ein Set doppelte Elemente haben?

7

Ich wurde eine Frage gestellt, die für meine Studienarbeit etwas unklar ist.

%Vor%

Ich bin mir nicht sicher, ob ich Duplikate aus diesem Array entfernen muss.

Ich habe versucht zu googeln, aber ein Ort wird mir etwas anderes erzählen. Jede Hilfe wäre willkommen.

    
dev6546 04.04.2012, 12:50
quelle

3 Antworten

6

Sei A = {1,2,2,3,4,5,6,7, ...} und B = {1,2,3,4,5,6,7, ...} dann jedes Element in A ist in B und jedes Element in B ist in A == & gt; A enthält B und B enthält A == & gt; A = B. Natürlich können Sets doppelte Elemente haben, nur dass das mit doppelten Elementen genau dasselbe ist wie das ohne doppelte Elemente.

    
vercetti 20.06.2013, 20:59
quelle
25

Aus Wikipedia in Set (Mathematik)

  

Eine Menge ist eine Sammlung gut definierter und unterschiedlicher Objekte.

Vielleicht liegt die Verwirrung an der Tatsache, dass eine Menge nicht davon abhängt, wie ihre Elemente angezeigt werden. Ein Satz bleibt derselbe, wenn seine Elemente angeblich wiederholt oder neu angeordnet werden.

Als solche würden die Programmiersprachen, die ich kenne, kein Element in einen Satz einfügen, wenn das Element bereits dazu gehört, oder sie würden es ersetzen, wenn es bereits existiert, aber niemals eine Duplizierung erlauben.

Programmiersprachenbeispiele

Lassen Sie mich ein paar Beispiele in verschiedenen Programmiersprachen anbieten.

In Python

Ein in Python gesetzter Satz ist definiert als "eine ungeordnete Sammlung von eindeutigen Elementen ". Und wenn Sie einen Satz wie a = {1,2,2,3,4} deklarieren, wird nur 2 einmal zum Satz hinzugefügt.

Wenn Sie print(a) eingeben, lautet die Ausgabe {1,2,3,4} .

Haskell

In Haskell ist die Einfügeoperation von Mengen definiert als: "[...] Wenn die Menge bereits ein Element enthält, das dem gegebenen Wert entspricht, wird es durch mit dem neuen Wert ersetzt."

Wenn Sie dies tun: let a = fromList([1,2,2,3,4]) , wenn Sie a auf die Hauptausgabe ausgeben, würde [1,2,3,4] dargestellt.

Java

In Java sind Sätze definiert als: "Eine Sammlung, die keine doppelten Elemente enthält .". Seine Add-Operation ist wie folgt definiert: "fügt das angegebene Element zu diesem Set hinzu, wenn es nicht bereits vorhanden ist. Wenn dieses Set bereits das Element enthält, verlässt der Aufruf das Set unverändert ".

%Vor%

Dieser Code würde wie in den anderen Beispielen [1,2,3,4] ausgeben.

    
Edwin Dalorzo 04.04.2012 13:01
quelle
2

Ein Satz kann durch seine bloße Definition keine doppelten Elemente haben. Die richtige Struktur für doppelte Elemente ist Multiset oder Tasche :

  

In der Mathematik ist eine Multimenge (oder Tasche) eine Verallgemeinerung des Konzepts einer Menge, die im Gegensatz zu einer Menge mehrere Instanzen der Elemente der Menge erlaubt. Zum Beispiel sind {a, a, b} und {a, b} verschiedene Multimengen, obwohl sie die gleiche Menge sind. Allerdings ist die Reihenfolge egal, also sind {a, a, b} und {a, b, a} die gleiche Multimenge.

Ein sehr häufiges und nützliches Beispiel für ein Multiset in der Programmierung ist die Sammlung von Werten eines Objekts:

%Vor%

Die hier angegebenen Werte sind ungeordnet, können jedoch nicht auf Set(1) reduziert werden, was z. breche die Iteration über die Objektwerte.

Weiterhin zitiert man aus dem verlinkten Wikipedia-Artikel (siehe dort für die Referenzen):

  

Multisets sind zu einem wichtigen Werkzeug in Datenbanken geworden. [18] [19] [20] Zum Beispiel werden häufig Multisets verwendet, um Beziehungen in Datenbanksystemen zu implementieren. Multisets spielen auch eine wichtige Rolle in der Informatik.

    
Dmitri Zaitsev 21.04.2017 04:30
quelle

Tags und Links