0 Daumen
59 Aufrufe

Frage:

Als Indikatorfunktion oder auch charakteristische Funktion bezeichnet man in der Mathematik eine Funktion, die es ermöglicht Mengen zu beschreiben.

blob.png

Als Indikatorfunktion oder auch charakteristische Funktion bezeichnet man in der Mathematik eine Funktion, die es ermöglicht Mengen zu beschreiben.

Für eine Menge M ist die charakteristische Funktion wie folgt definiert.

χM(x)={10falls x∈Mfalls x∉M
Das heißt, die Indikatorfunktion ist 1 für alle Elemente, die in der Menge enthalten sind, und 0 sonst.

Wir greifen dieses Prinzip auf, um Mengen von Integerzahlen in Haskell durch Indikatorfunktionen zu repräsentieren.

type IntSet = Int -> Bool
Zum Beispiel könnte man die Menge 4,8,15,16,23,42 in Haskell dann wie folgt definieren.

lostSet :: IntSet
lostSet = \x -> elem x [4, 8, 15, 16, 23, 42]
-- alternativ:
lostSet' :: IntSet
lostSet' = \x -> x == 4 || x == 8 || x == 15 || x == 16 || x == 23 || x == 42
Implementieren Sie die folgenden Operationen auf IntSets:

empty :: IntSet repräsentiert die leere Menge.
insert :: Int -> IntSet -> IntSet fügt eine Zahl zu einer Menge hinzu.
remove :: Int -> IntSet -> IntSet entfernt eine Zahl aus einer Menge.
isElem :: Int -> IntSet -> Bool prüft, ob eine Zahl in einer Menge enthalten ist.
union :: IntSet -> IntSet -> IntSet vereinigt zwei Mengen.
intersection :: IntSet -> IntSet -> IntSet bildet den Schnitt zweier Mengen.
difference :: IntSet -> IntSet -> IntSet berechnet die Differenz zweier Mengen.
complement :: IntSet -> IntSet liefert das Komplement einer Menge.
Können Sie auch Funktionen listToSet :: [Int] -> IntSet und setToList :: IntSet -> [Int] zur Konvertierung zwischen Listen und der obigen Mengenrepräsentation definieren? Geben Sie eine Implementierung an oder erklären Sie, warum dies nicht möglich ist.

Code:

von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community