Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Permutationsmatrix berechnen

Forumthread: Permutationsmatrix berechnen

Permutationsmatrix berechnen
Gabriel
Guten Morgen liebe Kolleginen, Kollegen des Excel-Forums
Ich habe das folgende Problem. Ich betrachte n Objekten die von 1 bis n nummeriert sind. Für die Permutationen dieser Objekten, ist es dann möglich die Permutationen dieser n Zahlen zu analysieren.
Diese Permutationen können auch lexikographisch gelistet werden:Zum Beispiel
P0: 1 2 3 4 5 6 7 8
P1: 2 1 3 4 5 6 7 8
usw....
Zu jederPermutation gehört eine Permutationsmatrix. Kennt jemand eine VBA-Prozedur, welche für jede der n! Permutationen die entsprechende Permutationsmatrix ausrechnet?
Dies ist die grössere Schwiriegkeit. Diese Permutationsmatrix wird k-mal potenziert, die zweite Aufgabe besteht darin eine bestimmte Permutationen sodass dei k-te Potenz dieser Matrix gleich der Einheitsmatrix ist.
Eingangsgrösse: Die Zahl n.
Ausgangsgrösse: alle Permutationsmatrixen P mit P hoch k = Einheitsmatrix.
Im Voraus herzlichen Dank für alle klärenden Hinweise.
Viele Grüsse
Gabriel
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Permutationsmatrix berechnen
11.07.2009 18:40:25
Erich
Hi Gabriel.
so als Ansatz:

Option Explicit
Sub PermMatrix()
Dim nn As Long, tt As String, zz As Long, lngA As Long, arrP(), pMat() As Byte
nn = 5
For zz = 1 To nn
tt = tt & zz
Next zz
zz = 0
lngA = Application.Fact(Len(tt))
ReDim arrP(1 To lngA)
Perm tt, "", zz, arrP                        ' Permutationen
For zz = 1 To lngA
ReDim pMat(1 To lngA, 1 To lngA)          ' Permutationsmatrix
For nn = 1 To Len(tt)
pMat(nn, Mid(arrP(zz), nn, 1)) = 1
Next nn
' hier k-te Potenz von pMat mit Einheitsmatrix vergleichen
Next zz
End Sub
Sub Perm(aa$, bb$, Ze&, arrW)
Dim ii%, jj%
jj = Len(aa)
If jj > 1 Then
For ii = 1 To jj
Perm Left(aa, ii - 1) + Right(aa, jj - ii), bb + Mid(aa, ii, 1), Ze, arrW
Next ii
Else
Ze = Ze + 1
arrW(Ze) = bb & aa
End If
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort und: Schönes Wochenende!
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Permutationsmatrix berechnen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Erstelle ein neues Modul:

    • Klicke auf Einfügen > Modul.
  3. Füge den folgenden Code ein, um die Permutationsmatrix zu berechnen:

    Option Explicit
    Sub PermMatrix()
       Dim nn As Long, tt As String, zz As Long, lngA As Long, arrP(), pMat() As Byte
       nn = 5 ' Anzahl der Objekte
       For zz = 1 To nn
           tt = tt & zz
       Next zz
       zz = 0
       lngA = Application.Fact(Len(tt))
       ReDim arrP(1 To lngA)
       Perm tt, "", zz, arrP ' Permutationen
       For zz = 1 To lngA
           ReDim pMat(1 To lngA, 1 To lngA) ' Permutationsmatrix
           For nn = 1 To Len(tt)
               pMat(nn, Mid(arrP(zz), nn, 1)) = 1
           Next nn
           ' Hier k-te Potenz von pMat mit Einheitsmatrix vergleichen
       Next zz
    End Sub
    
    Sub Perm(aa$, bb$, Ze&, arrW)
       Dim ii%, jj%
       jj = Len(aa)
       If jj > 1 Then
           For ii = 1 To jj
               Perm Left(aa, ii - 1) + Right(aa, jj - ii), bb + Mid(aa, ii, 1), Ze, arrW
           Next ii
       Else
           Ze = Ze + 1
           arrW(Ze) = bb & aa
       End If
    End Sub
  4. Führe das Makro aus, um die Permutationsmatrix zu berechnen. Achte darauf, dass die Eingangsgröße (nn) die Anzahl der Objekte definiert.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"

    • Lösung: Stelle sicher, dass die Anzahl der Objekte (nn) korrekt gesetzt ist und dass das Array ausreichend dimensioniert ist.
  • Fehler: "Typkonflikt"

    • Lösung: Überprüfe die Datentypen in Deinem Code, insbesondere bei der Verwendung von Arrays.

Alternative Methoden

Eine andere Möglichkeit, um die Permutationsmatrix zu bestimmen, ist die Verwendung von Excel-Funktionen oder Add-Ins wie dem Permutationsmatrix Rechner, falls Du das VBA nicht nutzen möchtest. Diese Tools bieten oft eine benutzerfreundliche Oberfläche zur Berechnung von Permutationen und deren Matrizen.


Praktische Beispiele

Hier ist ein Beispiel für eine einfache Eingabe, um die Permutationsmatrix zu berechnen:

  • Eingabe: n = 3
  • Ausgabe:
    • Permutationsmatrix für P0:
      1 0 0
      0 1 0
      0 0 1
    • Permutationsmatrix für P1:
      0 1 0
      1 0 0
      0 0 1

Du kannst die Excel Permutationen auflisten, um diese Matrizen zu visualisieren und analysieren.


Tipps für Profis

  • Nutze die Einheitsmatrix auf Englisch (Identity Matrix), um die Potenzen der Permutationsmatrix effizient zu überprüfen.
  • Experimentiere mit unterschiedlichen Werten für nn, um die Auswirkungen auf die Permutationsmatrix zu verstehen.
  • Speichere Deine Makros in einer Excel-Vorlage, um sie später einfach wiederverwenden zu können.

FAQ: Häufige Fragen

1. Wie kann ich die Permutationen in Excel auflisten? Du kannst die Funktion PERMUT() in Excel verwenden, um die Anzahl der möglichen Permutationen für eine gegebene Anzahl von Elementen zu berechnen.

2. Was ist der Unterschied zwischen einer Permutationsmatrix und einer Einheitsmatrix? Die Permutationsmatrix repräsentiert die Umordnung der Elemente, während die Einheitsmatrix eine spezielle Matrix ist, in der alle Diagonalelemente 1 und alle anderen 0 sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige