Permutation und System.NullReferenceException

  • VB.NET

Es gibt 26 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    ErfinderDesRades schrieb:

    Fakultäten intelligent ausgekürzt
    So isses. ;)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ErfinderDesRades schrieb:

    Prima! Verständnis der verschiedenen Permutations-Formen ist also schoma da.
    Aber dein Ergebnis ist unvollständig - guck:
    Quellcode
    123
    124
    125
    134
    135
    145
    234
    235
    245
    345


    So geht es auch.

    VB.NET-Quellcode

    1. For i As Integer = 1 To 5
    2. For ii As Integer = i To 5
    3. For iii As Integer = ii To 5
    4. If i <> ii And i <> iii And ii <> iii Then
    5. MsgBox(i & " - " & ii & " - " & iii)
    6. End If
    7. Next
    8. Next
    9. Next
    In Arbeit...

    vico255 schrieb:

    So geht es auch:

    VB.NET-Quellcode

    1. For i As Integer = 1 To 5
    2. For ii As Integer = i To 5
    3. For iii As Integer = ii To 5
    4. If i <> ii AndAlso i <> iii AndAlso ii <> iii Then
    5. Debug.WriteLine(i & " - " & ii & " - " & iii)
    6. End If
    7. Next
    8. Next
    9. Next
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Warum ist das anders/besser? @RodFromGermany

    Hast du eine Idee, wie man bei mehr wie 3 Schleifen die If Abfrage vereinfachen kann?

    VB.NET-Quellcode

    1. If i <> ii And i <> iii And i <> iiii And i <> iiiii And ii <> iii And ii <> iiii And ii <> iiiii And iii <> iiii And iii <> iiiii And iiii <> iiiii Then

    ist doch ein wenig verwirrend :D
    In Arbeit...
    @vico255
    1. hast Du nicht n-und-m-zig MessageBoxen zu quittieren, sondern siehst die kompletten Gruppen im Ausgabe-Bereich des Studios,
    2. brauchst Du in diesem Kontext keine Bit-Operationen (And), sondern es genügen logische Operationen, die außerdem schneller gehen, da deren Auswertung von links nach rechts geht und bereits beim ersten False abgebrochen wird.
      Analogon: Or <=> OrElse.
      Das entspricht dem & und && bzw. dem | und || in C / C++ / C#.

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    vico255 schrieb:

    Hast du eine Idee, wie man bei mehr wie 3 Schleifen die If Abfrage vereinfachen kann?
    siehe post#13
    Im dort gegebenen Link sind die mathematischen Standard-Permutationen allgemeingültig und höchst performant abgehandelt, und das kann auch gedownloaded werden.
    Und natürlich sind dort die Permutations-Parameter n, k nicht als verschachtelte Schleifen "hardcoded", sondern sind frei wählbar.
    (Und wenn das Tut dir was gebracht hat, wäre nett, es upzuraten.
    Ist sicherlich Betriebsblindheit, aber imo ists im Vergleich zu anneren Codeproject-Permutation-Artikeln deutlich under-rated)