FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Mathematik

zwei matrizen, ein test

zwei matrizen, ein test 2007-07-17 21:49
Anonymer User
Meine Lineare Algebra kenntnisse sind schon sehr eingerostet, aber ich glaube für folgendes Problem gibt es eine einfache Lösung:

"Gegebene zwei Matrizen, Prüfe ob die eine durch eine Permutation der Zeilen (Spalten) in die andere überführbar ist."

Man könnte nun sicherlich aller Permutationen durchgehen, aber da muss es doch eine einfache hinreichende Bedingung geben …

für Hilfe sehr dangbar, chris

RE: zwei matrizen, ein test 2007-07-18 07:54
Slater
wie groß sind denn die Matrizen? dein menschliches Auge wird ein paar Zeilen doch wohl überblicken können,
ein Computer nimmt eine Map ;)

RE: zwei matrizen, ein test 2007-07-18 16:16
Anonymer User
Naja die können schon sehr groß werden (paar hundert bis tausend Zeilen)

RE: zwei matrizen, ein test 2007-07-18 17:24
georg
Naja die können schon sehr groß werden (paar hundert bis tausend Zeilen)

Was Slater vorgeschlagen hat (zu jeder Matrix eine Map, in der du zu jedem Tupel
speicherst, wie oft es als Zeile vorkommt und dann die Maps vergleichen) geht nicht?
Das dürfte grob geschätzt in n*log n laufen, wenn die Einträge nicht zu groß sind.

Wenn die Matrizen invertierbar sind, könntest du [latex]C:=A^{-1}B[/latex] ausrechnen,
prüfen, ob im Ergebnis in jeder Zeile nur eine 1 und sonst Null stehen und ob det C
ungleich 0 ist. Aber das ist vermutlich deutlich aufwendiger als obige Methode.

RE: zwei matrizen, ein test 2007-07-18 18:41
Slater
ich schlug vor, in der Map die Zeilen von Matrix A zu speichern (mit halbwegs sinnvollen Hashwert)

für jede Zeile von Maxtrix B dann Hashwert ausrechen, die hoffentlich wenigen Zeilen in der Map finden
und für diese per Hand vergleichen

also ganz normal wie man zwei Mengen beliebiger Objekte vergleicht

edit: sind ja keine Mengen sondern Listen, also durchaus auch noch die Anzahl je Zeile berücksichtigen

RE: zwei matrizen, ein test 2007-07-20 10:29
Anonymer User
Danke für Antworten! Hab gemerkt das ich mein Problem falsch formuliert hatte … hat sich aber jetzt erledigt!

RE: zwei matrizen, ein test 2007-07-20 12:12
ethrandil
Auch wenns jetzt nicht mehr hilft:

Einfach die Matrizen in je ein Array/Liste umwandeln wo die Zeilen mit nem sinnvollen Hash als Zahl stehen.
Beide sortieren und vergleichen. O(n*log(n))
Wofür brauche ich eine Map? ;)

- eth

RE: zwei matrizen, ein test 2007-07-20 13:30
Slater
um das Sortieren gar zweimal zu sparen