Hallo,
ich werkle mal wieder an meinem Lottoproblem und der bisherige Code ist insofern aktuell performancemässig... miserabel
da der Code ein aufsteigend sortiertes Tripel (a,b,c) (mit a<b<c, 1<=a,b,c<=49) aktuell mit 13 Millionen 6-Tupeln (g,h,i,j,k,l) dahingehend vergleicht ob es darin enthalten ist. (zuzüglich 1-2 weiteren Bedingungen).
Falls dem so ist, dann geht der Code nochmal alle 6-Tupel durch und entfernt darin dieses Tripel.
Und das wieerum wird für ALLE möglichen Tripel gemacht.
Kurzum, es werden so ca. 2*(49 über 3)*(49 über 6)=515275651968 Vergleiche gemacht, was einfahc nur lächerlich hoch ist, was seeehr lange dauert und den Computer zum Abshcmieren bringt.
Um also zumindest ein 3-Tupel nicht 2 mal mit 13 Millionen 6-Tupeln vergleichen zu müssen,
war nun der Gedanke, sich vorab einfach mal zu überlegen, welche 6tupel es denn gibt in denen ein gegebenes 3-Tupel (a,b,c) enthalten sein könnte.
Und nur die dann überprüfen!
Das erscheint mir, als wäre es unter Umständen etwas schneller und effektiver! 🙂
Frage ist nur, wie alle möglichen solchen 6Tupel bauen?
Wenn ein 3Tupel (a,b,c) gegeben ist, kann ja das 6Tupel bspw die Formen
(___abc),(a_b_c)(a__bc) und ähnliche haben.
Wie finde ich die am Effektivsten?
Wobei halt die 3 Blnkstellen _ _ _ in und um a b und c verteilt werden müssen.
Ist vermutlich eher eine Frage der Kombinatorik, aber mir fällt nichts Gutes ein wie ich das programmieren kann :-/
ich werkle mal wieder an meinem Lottoproblem und der bisherige Code ist insofern aktuell performancemässig... miserabel
da der Code ein aufsteigend sortiertes Tripel (a,b,c) (mit a<b<c, 1<=a,b,c<=49) aktuell mit 13 Millionen 6-Tupeln (g,h,i,j,k,l) dahingehend vergleicht ob es darin enthalten ist. (zuzüglich 1-2 weiteren Bedingungen).
Falls dem so ist, dann geht der Code nochmal alle 6-Tupel durch und entfernt darin dieses Tripel.
Und das wieerum wird für ALLE möglichen Tripel gemacht.
Kurzum, es werden so ca. 2*(49 über 3)*(49 über 6)=515275651968 Vergleiche gemacht, was einfahc nur lächerlich hoch ist, was seeehr lange dauert und den Computer zum Abshcmieren bringt.
Um also zumindest ein 3-Tupel nicht 2 mal mit 13 Millionen 6-Tupeln vergleichen zu müssen,
war nun der Gedanke, sich vorab einfach mal zu überlegen, welche 6tupel es denn gibt in denen ein gegebenes 3-Tupel (a,b,c) enthalten sein könnte.
Und nur die dann überprüfen!
Das erscheint mir, als wäre es unter Umständen etwas schneller und effektiver! 🙂
Frage ist nur, wie alle möglichen solchen 6Tupel bauen?
Wenn ein 3Tupel (a,b,c) gegeben ist, kann ja das 6Tupel bspw die Formen
(___abc),(a_b_c)(a__bc) und ähnliche haben.
Wie finde ich die am Effektivsten?
Wobei halt die 3 Blnkstellen _ _ _ in und um a b und c verteilt werden müssen.
Ist vermutlich eher eine Frage der Kombinatorik, aber mir fällt nichts Gutes ein wie ich das programmieren kann :-/