Hallo Zusammen,
ich stehe vor einem Problem. Ich möchte eine Programm schreiben, welches aus einer vorgegebenen Anzahl von Ziffern (z.B.10) und einer vorgegebenen Teilmenge (z.B. 4) sowie einer festen Quersumme (z.B. 26) alle möglichen Kombinationen errechnet. Jede Ziffer darf nur einmal gezogen werden. Das Thema "Partitionierung", mit dem ich mich schon beschäftigt habe, funktioniert hier also nicht. Ich möchte das Script gern in Excel (VBA) schreiben, weil ich mir dort alle Kombinationen auflisten lassen kann.
Der Quellcode ist nicht mein Problem. Ich finde den richtigen Algorithmus für die Berechnung nicht.
Meine Ansätze:
Gegeben:
Ziffernvorat (1/2/3/4/5/6/7/8/9/10)
Anzahl der verwendeten Ziffern 4
Quersumme 26
Gesucht:
Alle möglichen Kombinationen -> Aufgelistet
Lösungsansatz:
Schleife Beginn
26 - 10 = 16 - 9 = 7 - 8 = Falsch - 7 = 0 ergibt 10/9/7
blockiere kleinste Ziffer des vorherigen Ergebnisses (also 7)
26 - 10 = 16 - 9 = 7 - 8 = Falsch - 6 = 1 - 5 = Falsch - 4 = Falsch - 3 = Falsch - 2 = Falsch - 1 = 0 ergibt 10/9/6/1
blockiere zweit kleinste Ziffer des vorherigen Ergebnisses (also 6)
26 - 10 = 16 - 9 = 7 - 8 = Falsch - 5 = 2 - 4 = Falsch - 3 = Falsch - 2 = 0 ergibt 10/9/5/2
blockiere zweit kleinste Ziffer des vorherigen Ergebnisses (also 5)
26 - 10 = 16 - 9 = 7 - 8 = Falsch - 4 = 3 - 3 = 0 ergibt 10/9/4/3
blockiere zweit kleinste Ziffer des vorherigen Ergebnisses (also 4)
26 - 10 = 16 - 9 = 7 - 8 = Falsch - 3 = 4 - 2 = 2 - 1 = 1 Aussage falsch
...
Irgendwie lässt sich dieser Algorithmus nicht ordentlich in einem Code abbilden. Das Blockieren der Zahlen hat keine Homogenität Würde es was bringen, wenn man in jeder Runde die kleinste Zahl blockiert? Also 1, dann 2, dann 3 ...
Hat jemand eine Idee? Ich hänge hier irgendwie fest. Vielen Dank schon mal für eure Antworten.
Gruß
Berater
*Topic verschoben*
ich stehe vor einem Problem. Ich möchte eine Programm schreiben, welches aus einer vorgegebenen Anzahl von Ziffern (z.B.10) und einer vorgegebenen Teilmenge (z.B. 4) sowie einer festen Quersumme (z.B. 26) alle möglichen Kombinationen errechnet. Jede Ziffer darf nur einmal gezogen werden. Das Thema "Partitionierung", mit dem ich mich schon beschäftigt habe, funktioniert hier also nicht. Ich möchte das Script gern in Excel (VBA) schreiben, weil ich mir dort alle Kombinationen auflisten lassen kann.
Der Quellcode ist nicht mein Problem. Ich finde den richtigen Algorithmus für die Berechnung nicht.
Meine Ansätze:
Gegeben:
Ziffernvorat (1/2/3/4/5/6/7/8/9/10)
Anzahl der verwendeten Ziffern 4
Quersumme 26
Gesucht:
Alle möglichen Kombinationen -> Aufgelistet
Lösungsansatz:
Schleife Beginn
26 - 10 = 16 - 9 = 7 - 8 = Falsch - 7 = 0 ergibt 10/9/7
blockiere kleinste Ziffer des vorherigen Ergebnisses (also 7)
26 - 10 = 16 - 9 = 7 - 8 = Falsch - 6 = 1 - 5 = Falsch - 4 = Falsch - 3 = Falsch - 2 = Falsch - 1 = 0 ergibt 10/9/6/1
blockiere zweit kleinste Ziffer des vorherigen Ergebnisses (also 6)
26 - 10 = 16 - 9 = 7 - 8 = Falsch - 5 = 2 - 4 = Falsch - 3 = Falsch - 2 = 0 ergibt 10/9/5/2
blockiere zweit kleinste Ziffer des vorherigen Ergebnisses (also 5)
26 - 10 = 16 - 9 = 7 - 8 = Falsch - 4 = 3 - 3 = 0 ergibt 10/9/4/3
blockiere zweit kleinste Ziffer des vorherigen Ergebnisses (also 4)
26 - 10 = 16 - 9 = 7 - 8 = Falsch - 3 = 4 - 2 = 2 - 1 = 1 Aussage falsch
...
Irgendwie lässt sich dieser Algorithmus nicht ordentlich in einem Code abbilden. Das Blockieren der Zahlen hat keine Homogenität Würde es was bringen, wenn man in jeder Runde die kleinste Zahl blockiert? Also 1, dann 2, dann 3 ...
Hat jemand eine Idee? Ich hänge hier irgendwie fest. Vielen Dank schon mal für eure Antworten.
Gruß
Berater
*Topic verschoben*
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()