Legen Sie die Builder-Notation für übereinstimmende Elementpaare fest

Ich habe eine Reihe von Paaren, S = { A , B 1 , A , B 2 , . . . , A , B N } Wo A ist nicht einzigartig unter den Paaren.

Wenn ich die Extraktion aller Instanzen ausdrücken möchte B für einen bestimmten Fall von A , als Funktion, sagen wir mal G R Ö u P P A ich R S ( ) . Ist folgendes richtig?

G R Ö u P P A ich R S ( A ) = { B | A , B S }

Was wäre, wenn die tatsächlichen Paare nicht eindeutig wären, und S ist eine Liste statt einer Menge? Wie würde ich dieselbe Funktion ausdrücken (wodurch ich eine nicht eindeutige Liste von Instanzen von B )?

Ich bin mit der Notation des Set Builders nicht vertraut, aber vielleicht könnten Sie (ungeschickt) schreiben { ( B , N ) | ( A , B ) S , N = | { B | ( A , B ) S } | } . Dies ist keine Liste, aber das zweite Element gibt an, wie oft das erste Element erscheint.
Beachten Sie, dass die Zugehörigkeit zu einer Menge impliziert, dass Elemente höchstens einmal vorkommen, also im vorliegenden Kontext die geordneten Paare ( A , B ) wird nicht wiederholt (auch wenn die erste Koordinate A wiederholt sich zufällig). Um Wiederholungen der geordneten Paare zu erhalten, benötigen Sie ein sogenanntes Multi-Set oder (in vielen Programmierkontexten) eine Tasche .
@Hardmath Ja. Deshalb sagte ich S zu einer Liste und nicht zu einer Menge wird, können Sie es als eine Sequenz sehen. Aber ich weiß nicht, ob es eine elegante mathematische Notation gibt, um die Liste (oder Tasche oder was auch immer) zu durchlaufen und zu extrahieren B Artikel.
@copper.hat Ich möchte die Anzahl der Male nicht zählen. Ich möchte eine Liste der tatsächlichen Elemente. Stellen Sie sich vor, es ist ein Paar aus „Nachname“ und „Name“, und wir extrahieren die Liste der „Namen“ mit demselben „Nachnamen“.
Okay, die Liste erlaubt Wiederholungen, arrangiert aber auch eine Reihenfolge von Elementen (Reihenfolge), die Sie anscheinend nicht möchten (es würde jedoch keinen Unterschied machen, wenn alle Elemente gleich wären).
Sammelst du die Paare oder den 'b'-Teil? Im letzteren Fall gibt es keinen Unterschied zwischen den letzten Elementen von (joe, murphy) und (tony, murphy).
@hardmath Nun, in meinem speziellen Fall spielt die Reihenfolge keine Rolle (obwohl es nützlich wäre zu lernen, wie man es auch mit einer Sequenz macht, denke ich :)). Also ja, die richtige Definition ist eine Tasche oder ein Multi-Set.
@copper.hat In meinem speziellen Fall sammle ich den 'b'-Teil. (In Wirklichkeit sind es Zahlen, mit denen ich zusammenrechnen muss aber als solches hat es nichts mit diesem Problem zu tun.) Um das Nachname- und Namensbeispiel zu verwenden, sind die Paare ('murphy', 'joe') und ('murphy', 'tony') und ich möchte ('joe', ' Toni'). Im Falle S ist kein Set, sondern eine Tasche, falls da ('murphy', 'joe'),('murphy', 'joe'),('murphy', 'tony') joe', 'tony').
Dann ist dies im Wesentlichen dasselbe wie das Zurückbekommen (('joe',2), ('tony,1)), was ich in meinem ersten Kommentar habe. Ich meine, es gibt keinen Unterschied zwischen 'Joe' und 'Joe'.
@copper.hat Ich verstehe es jetzt ... aber wenn S kein Set ist, ist die Set-Builder-Notation nicht anwendbar, denke ich. Was würden Sie stattdessen verwenden, wenn S war ein Multiset?
Stellen Sie sich eine Multi-Menge als eine Funktion von der Menge (oder einer geeigneten universellen Menge) zu den nicht negativen ganzen Zahlen vor. (Eine gewöhnliche Menge kann man sich als Funktion zu vorstellen { 0 , 1 } .) Dann ist das, was ich oben geschrieben habe, im Wesentlichen ein Multi-Set. Die Set-Builder-Notation ist angemessen, aber etwas umständlich. Genauso wie das Definieren geordneter Paare umständlich ist.
@copper.hat Danke. Gibt es eine andere (weniger umständliche) Notation, die ich verwenden könnte?
Nicht dass ich daran denken könnte.

Antworten (1)

Set-Builder-Notation bedeutet oft, jede explizite Aufzählung der Elemente zu vermeiden (bis zu einer gewissen Wiederholung im Fall von Multi-Sets), indem ein Prädikat angegeben wird, das die zugehörigen Elemente charakterisiert. Genau genommen kann dies für Multimengen nicht funktionieren, da ein Prädikat bei Anwendung auf ein Item entweder erfüllt ist oder nicht (wahr oder falsch).

Was benötigt würde, wäre eine Funktion, wie von @copper.hat vorgeschlagen, die jedem Mitglied des zugrunde liegenden Satzes eine Zählung zuweist. Wenn man einmal auf die Beine gegangen ist, kann man genauso gut die Funktion selbst die Repräsentation der Multi-Menge sein lassen.

Es gibt eine Möglichkeit, die explizite Aufzählung von Elementen in einer Liste zu einer originalgetreuen Darstellung eines Multisets zu machen, dh zu einer, die eine variable Anordnung der Elemente nicht zulässt. Dies besteht einfach darin, auf einer sortierten Liste zu bestehen . Dies erfordert, dass die zugrunde liegende Menge (Domäne) eine Sortierreihenfolge hat, die kanonisch ist oder zumindest aus dem Kontext verstanden wird. Für Nachnamen könnte man die offensichtliche Wahl der lexikographischen Ordnung treffen.

Was letztendlich die beste Wahl der Darstellung ist, hängt von der Verwendung ab, für die die Notation verwendet wird. Ein Autor muss seine Leser in der Lage sein, die Notation mit minimaler Verwirrung zu analysieren.

Danke für deine Antwort. Denken Sie das Multiset-Union-Symbol ist klar und beliebt genug, um es alleine zu verwenden? Oder müsste ich einen Satz schreiben oder ihn sogar definieren (dass er die Summe addiert).
Ich denke, jede Wahl der Notation für Multi-Sets erfordert eine Definition in Ihrem Aufsatz. es gibt keine Wahlmöglichkeiten, die im Konsens akzeptiert werden, analog zu geschweiften Klammern { } oder Gewerkschaft für Sätze. Aber Definitionen sind gut – sie geben den Lesern die Chance zu erkennen, dass sie nicht mehr in Kansas sind!