Hi Simon,
vielen Dank für den Hinweis! Ich teste es gleich mal, obwohl ich schon etwas ähnliches bei
SDC gefunden habe!
1. Problem
Es sollten eigentlich keine Permutationen sein! Beispiel: 20 Elemente und je Ziehung 6 Elemente. Macht summa summarum 27907200 Permutationen. Im Gegensatz dazu stehen die 38760 Kombinationen. Darunter kommen aber auch Sachen vor wie 1-4-6-13-20-41 = 20-4-1-41-13-6!!! Sortiert man die zweite Folge, so entspricht sie der ersten!
Ein berücksichtigen dieser Wiederholungen führt im Ergebnis zu Kombinationen. Jede Folge kommt also nur einmal vor.
Vorraussetzung, wiederholungen in einer Folge nach dem Muster: 1-4-6-4-13-20 darf es dabei nicht geben, sonst wäre es eine Variation mit Wiederholung!!!
Vorerst bin ich folgenden Lösungsweg gegangen:
1. fkt.-Struktur aus dem Programm, was man sich unter obigem Link runterladen kann, an meine Oberfläche angepasst. Damit ich wenigstens irgendwas habe!
2. anstatt "writeln(' {'+A+'} ')" schreibe ich die Werte in eine Datenbank
Beim Schreiben in eine Datei oder eine Listbox macht mein rechner trotz 1GB Ram nicht mit!
3. vor dem Schreiben prüfe ich jedoch, ob die zu schreibende Zeichenfolge vorhanden ist; dafür sortiere ich sie auch vorher! Prüfen mit 'Select', soriteren über eine zweite Listbox!
Jeder wird sich vorstellen können, was das für einen Radau im Prozessor verursacht!
Ich habe für meine Testphase einfach gesagt, ich gehe von 20 Zahlen aus.
Da die Fkt-Struktur (demo über Link) irgendwie mit zweistelligen Ziffern nicht zurechtkommt, habe ich kurzerhand die Ziffern 1-20 durch buchstaben ersetzt (A..T)! Nebenbei bemerkt,...
...1 Buchstabe = representiert irgendeine Zahl an der Position!!!
Beispiel:
In der jetzigen Fassung ist A die erste Zahl, B die zweite Zahl, ...usw
Die erste Zahl muss aber nicht 1 sein, die zweite nicht 2, usw. ...!
Zur darstellung der Kombinationen reichen mir die Buchstaben. Die kann ich später mit nem UPDATE durch Zahlen ersetzen. Entweder durch die endgültigen (A=2, B=5,...) oder durch die Position an der sie stehen (A=1, B=2,...). Aber das will ich jetzt auch nicht weiter breit treten, weil´s einfach langweilig ist! Es sei denn jemand besteht unbedingt darauf!
Da das Programm seit 12:30 uhr ununterbrochen läuft und erst bei 'C..' angekommen ist, wird das wohl alles noch etwas dauern.
Liegt halt daran, das die Fkt. mir Permutationen liefert und ich aber die Kombiniationen rausfiltere um es eindeutig zu haben. Also 38760 aus 27907200!!!!
Hatte auch schon die Idee das ganze über SQL zu lösen - allerdings ohne konkrete Vorstellung wie. Diesen Ansatz habe ich jetzt und werde ihn sobald das hier durch ist auch umsetzen!
Trotzdem vielen Dank für den Tip
Viele Grüße
Oliver
PS: Selbst wenn es so aussehen mag, als wäre ich ziemlich weit, muss ich sagen ich habe noch viel arbeit vor mir und ich würde mich freuen wenn der eine oder andere noch die Idee oder den Tip für mich parat hat den ich brauche!!!