vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln 
Autor: Manfred X
Datum: 13.02.12 21:25

Hallo!

Hier ein kleines Modul, das die Permutationen innerhalb
der Arrays in eine Liste schreibt.
In Deinem Fall sind das jeweils 720 Einträge.

Aufruf-Beispiel für ein Array ("elements"):

Dim elements() As UInteger = {11, 22, 33, 44, 55, 66}
Dim lst As List(Of UInteger()) = Permutationen_Ohne_Wiederholung(elements)

Diese Liste muss für alle 4 Array gebildet werden und dann ....
eine vierfach verschachtelte Schleife über diese Listen
laufen lassen ....
Module modPerm
 
    Const GEN_NEXT As Integer = 0  'ok, print and continue
    Const GEN_TERM As Integer = 1  'ok, terminate
 
    Private Function gen_perm_rep_init(ByVal vector() As UInteger) As Integer
        For i As Integer = 0 To vector.Length - 1
            vector(i) = CUInt(i)
        Next i
        Return GEN_NEXT
    End Function
 
    Private Function gen_perm_rep_next(ByVal vector() As UInteger, _
        ByVal n As UInteger) As Integer
 
        Dim j As Integer = CInt(n) - 2  'index
        Dim i As Integer = CInt(n) - 1 'help index
        Dim temp As UInteger     'auxiliary element
 
        Do While j >= 0 AndAlso vector(j + 1) <= vector(j)
            j -= 1
        Loop
        If j < 0 Then Return GEN_TERM
 
        Do While (vector(i) <= vector(j))
            i -= 1
        Loop
        temp = vector(j)
        vector(j) = vector(i)
        vector(i) = temp
        i = CInt(n)
 
        Do While j < i
            j += 1 : i -= 1
            If j < i Then
                temp = vector(j)
                vector(j) = vector(i)
                vector(i) = temp
            End If
        Loop
        Return (GEN_NEXT)
    End Function
 
    Public Function Permutationen_Ohne_Wiederholung(Of T) _
        (ByVal elements() As T) As List(Of T())
 
        Dim vector(elements.Length - 1) As UInteger
        Dim n As UInteger = CUInt(vector.Length)
 
        Dim lst As New List(Of T())
        Dim gen_result As Integer = gen_perm_rep_init(vector)
        Do While gen_result = GEN_NEXT
            Dim ielements(elements.Length - 1) As T
            For i As Integer = 0 To vector.Length - 1
                ielements(i) = elements(CInt(vector(i)))
            Next
            lst.Add(ielements)
            gen_result = gen_perm_rep_next(vector, n)
        Loop
        Return lst
    End Function
End Module
Hinweis: Code-Eigentümlichkeiten - Folge der Umstellung aus C++

Beitrag wurde zuletzt am 13.02.12 um 21:26:59 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
4 Zahlenreihen -- alle möglichen Kombinationen ermitteln4.791Schudi13.02.12 19:53
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln3.547Manfred X13.02.12 20:22
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln3.422Schudi13.02.12 20:32
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln3.964Manfred X13.02.12 21:25
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.504Sloorg09.07.16 13:22
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.716Manfred X09.07.16 21:29
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln3.745Preisser13.02.12 21:38
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.567Sloorg09.07.16 23:08
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.604Manfred X10.07.16 10:33
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.693Franki21.07.16 04:23
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.647Sloorg11.07.16 03:56
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.524Sloorg20.07.16 07:41
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.503Franki21.07.16 04:27
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.519Sloorg21.07.16 10:21
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.478Sloorg21.07.16 11:10
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.485Franki22.07.16 03:15
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.486Sloorg22.08.16 10:05
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.440Manfred X21.07.16 11:12
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.479Franki22.07.16 02:36
Unterscheidbare Permutationen2.503Manfred X22.07.16 04:49
Re: Unterscheidbare Permutationen2.497Franki24.07.16 01:33
Re: Unterscheidbare Permutationen2.404Sloorg24.07.16 19:35
Re: Unterscheidbare Permutationen2.493Manfred X24.07.16 21:05
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.548Sloorg25.07.16 09:31
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.592Sloorg25.07.16 09:40
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.450Manfred X25.07.16 16:01
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.491Franki27.07.16 01:27
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.456Manfred X28.07.16 12:07
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.584kocengmalek28.07.16 09:14
Re: 4 Zahlenreihen -- alle möglichen Kombinationen ermitteln2.608kocengmalek28.07.16 10:14

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel