Hi,
ich habe mir heute NumPys Matrizen angeschaut (nett, das per Hand zu rechnen ist schrecklich lästig und zum experimentieren mit zahlen geht es wesentlich schneller als in Maple, Matlab, Octave und Co), aber ich frage mich ob es da auch irgeneine eingebaute Funktion gibt um die Permanente zu bestimmen. Klar, das kann man auch selbst programmieren, nur wozu
Permanente in Numpy-Matrizen?
Nicht dass ich wüsste. Ansonsten ist das ja ein Einzeiler
Code: Alles auswählen
sum(reduce(mul, (m[i,perm[i]] for i in range(m.shape[0]))) for perm in permutations(range(m.shape[0])))
Selber schreiben muß wohl leider sein - wäre vielleicht ein feature request wert?
Mein Vorschlag:
wenn m eine 2x2 matrix ist - sonst entsprechend länger. Entsprechende imports von numpy natürlich vorausgesetzt. Ich weiß nicht welche Lösung schneller ist, aber ich finde meine lesbarer, weil IMHO eine direkte Übersetzung der Definition
HTH
Christian
Mein Vorschlag:
Code: Alles auswählen
prod(m.diagonal()) + prod(m[::-1].diagonal())
HTH
Christian