31.07.2008
Hello,
also ich hab hier ne alte Klausur vom 31.07.08 vor mir liegen und hab die mal “zum Spaß” gemacht
Irgendwie schnall ich das Thema nämlich auch nicht so wirklich.
"Eine Multimenge ist eine Menge, in der Elemente mehrfach vorkommen köonnen. Entsprechend
kann man eine Multimenge nicht nur fragen, ob sie ein Element enthäalt, sondern auch wie oft.
Gegeben sei folgende Signatur eines abstrakten Datentyps Multimenge M. Die Elemente der Multimenge
seien von einem beliebigen Typ T.
create: --> M
add: T x M --> M
contains: T x M --> Nat
remove: T x M --> M
removeAll: T x M --> M
contains soll zurückliefern, wie oft ein Element eingefügt wurde. Es gilt daher z.B.
contains(x,add(x,add(x,create))) = 2
remove(x,m) entfernt nur ein Element x aus der Multimenge M, removeAll(x,m) jedoch alle Vorkommen
von x in M.
b) Geben Sie die Axiome zur Definition des Verhaltens von contains an:
Also ich bin mir da sehr unsicher (generell beim Axiome angeben).
Ich hab mir gedacht:
A1: contains (x, create) = 0
A2: contains (x, add(x, create) = 1
c) Geben Sie die Axiome zur Definition des Verhaltens von remove an:
A4: remove(x, add(x, create) = create
A5: remove (x, create) = ?
d) Geben Sie die Axiome zur Definition des Verhaltens von removeAll an:
A6: removeAll (x, create) =?
A7: removeAll( x, add(x, create) = ?
Also das sind so ungefähr meine Gedanken, aber ich weiß absolut nicht wie man richtig vorgehen muss.
Vielleicht hat ja Jemand den ein oder anderen Tipp oder ne Erklärung parat.
Viele Grüße,
sebbi