Funktionen mit Mengen < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 10:25 Do 08.11.2007 | Autor: | damien_ |
Aufgabe | Die Funktion AreDistinctSets[menge1_,menge2_] überprüft, ob die Mengen "menge1" und "menge2" keine gleichen Elemente enthalten. Ist das der Fall, dann liefert die Funktion als Rückgabewert den Wahrheitswert True, sonst den Wahrheitswert False. Testen Sie Ihre Funktion an zumindest zwei Beispielen. |
Hallo,
wir haben ein umfangreiches Mathematica Projekt als Hausübung bekommen.
Nach der Hälfte der Aufgaben stehe ich nun bei den Funktionen an.
Ich weiß nicht wo ich beginnen soll und wäre über einen Denkanstoss sehr dankbar
fg
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Hallo und ,
ich nehme an, die Funktion Intersection[] dürft ihr nicht nutzen, sonst wäre es ja zu einfach.
Der einfachste Ansatz wäre in zwei verschachtelten Schleifen beiden "Mengen" (Listen, oder?) zu durchlaufen und die Elemente auf Gleichheit zu testen. Sobald gleiche Elemente gefunden wurden, wird False zurückgegeben. Falls die Schleifen komplett durchlaufen wurden, wird True zurückgegeben.
Schneller geht es, wenn man die beiden "Mengen" zuerst sortiert (und ggf. doppelte Elemente entfernt, falls nicht schon vorher geschehen). Dann beginnt man mit den beiden ersten Elementen der beiden Mengen, vergleicht und nimmt bei Ungleichheit (sonst False) aus der Menge mit dem nächstgrößeren Element das nächste. Sobald mindestens eine der Mengen durchlaufen wurde, kann man True zurückgeben.
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:15 Do 08.11.2007 | Autor: | damien_ |
Ich habe keinen Vermerk gefunden dass Intersection nicht erlaubt sei
hier meine Lösung
AreDistinctSets[menge1_,menge2_] := Length[Intersection[menge1, menge2]] == 0
Danke für die schnelle Hilfe
|
|
|
|