begrenzte variablen --> alle möglichen Kombinationen?
Übersicht

![]() |
dominikBetreff: begrenzte variablen --> alle möglichen Kombinationen? |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie bastel ich ne rutine die mir aus 4 verschiedenen variablen alle möglichen kombinationen heraussucht.
(ich weill keinen fertigen code sonder ne idee, hilfe) hab natrülich auch nix gegen code *gg* |
||
![]() |
Michi1988 |
![]() Antworten mit Zitat ![]() |
---|---|---|
anzahl der verschiedenen möglichkeiten (a,b,c,d) ^ Plätze nebeneinander (a,b,d,c ; a,b,c,d) | ||
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist so nicht ganz korrekt ![]() Was du suchst ist, wenn ich es richtig verstanden hab, eine Permutations-Darstellung. Die Anzahl der Elemente der Permutation errechnet sich nicht potentiell sondern fakultativ... also Fakultät der Anzahl der Elemente. Bei 4 Elementen ergeben sich also 4*3*2*1 = 24 Möglichkeiten. Ich habe lange gesucht, um einen Weg zu finden, das ganze darzustellen (über Bäume etc etc) aber ich hab leider keinen gefunden. Also machte ich mich auf den Weg durchs WWW und fand tatsächlich einen VB code, den ich dreist geklaut und konvertiert hab. Hier ist er: Code: [AUSKLAPPEN] Dim intPositionArray(100) Function LexicographicPermutations(strString) Local strPermutation$ ;Initialise the position array. uB = Len(strString) - 1 For i = 1 To Len(strString) intPositionArray(i - 1) = i Next ;Get Each permutation. Repeat ;DoEvents If bolCancel Then Goto Finish i = uB ;Loop through the permutation position array And reorder it. While intPositionArray(i - 1) >= intPositionArray(i) i = i - 1 If i = 0 Then Goto Finish Wend j = uB + 1 While intPositionArray(j - 1) <= intPositionArray(i - 1) j = j - 1 Wend ;Swap (i-1) And (j-1). intTemp = intPositionArray(i - 1) intPositionArray(i - 1) = intPositionArray(j - 1) intPositionArray(j - 1) = intTemp i = i + 1 j = uB + 1 While i < j ;Swap (i-1) And (j-1). intTemp = intPositionArray(i - 1) intPositionArray(i - 1) = intPositionArray(j - 1) intPositionArray(j - 1) = intTemp i = i + 1 j = j - 1 Wend ;Set the permutation. strPermutation = "" For i = 0 To uB strPermutation = strPermutation + Mid$(strString, intPositionArray(i), 1) Next Print strPermutation Forever .Finish End Function LexicographicPermutations("1234") Die Dimensionierung auf 100 Felder (ganz oben) ist sicherlich unschön, aber was solls ![]() Ich habe mir eben auch nicht mehr dir Mühe gemacht das zu verstehen, es ist einfach zu spät dafür! Ehre wem Ehre gebührt, hier der Link zum Original: http://www.planet-source-code....p;lngWId=1 So, viel Spaß damit. Das ganze solltest du jetzt ja recht fix so umschreiben können, das es auch beliebig lange Zeichenketten oder was auch immer aneinander reiht. Joa, gute Nacht und ich hoffe du gibst dir beim Verstehen mehr Mühe als ich und lernst auch was daraus ![]() walski |
||
buh! |
![]() |
Michi1988 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich habe gedacht jede Zahl darf so oft dran kommen wie sie will.
wie die möglichkeiten mit Bits. 00 01 10 11 also 4 möglichkeiten. dann wäre es bei mir richtig: 2(möglichkeiten (1 oder 2)) ^2 (stellen: ab) wen jede Zahl nur einmal dran kommen darf na klar. Fakultät !2 ist dann 2 10 01 Nur mal so nebensächlich ![]() Michi |
||
![]() |
dominik |
![]() Antworten mit Zitat ![]() |
---|---|---|
wo ist hier die zu erfüllende Bedingung?
Code: [AUSKLAPPEN] If bolCancel Then Goto Finish
danke walski das ises(fast) ![]() denn hier werden die möglichkeiten das nicht immer alle zahlen verwendet werden müssen nicht bedacht. hab aber noch nich ganz verstanden |
||
![]() |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn da nichts mehr steht wird geprüft ob es true ist, also 1 | ||
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com | www.CarnageContest.com | www.Stranded3.com |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@dominik
Man könnte die Schleife von außen abbrechen darum stand da wohl auch DoEvents drin , also z.B. wenn man nen Stop Knopp drückt wird ein (Click) Event durchgelassen was diese Variable setzt . Eigentlich gibt es in VB auch Exit Do ... |
||
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie gesagt, war nur eine quick&dirty Konvertierung ohne jeden Gedanken ![]() Ich war zu müde. walski |
||
buh! |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
VERSCHOBEN nach Allgemein. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group