![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Jr. Member
![]() Registriert seit: 08.08.2005
Alter: 44
Beiträge: 29
|
![]() Hallo,
ich habe folgendes Problem: Ich muss ein Programm schreiben, welches mir alle möglichen 6er Zahlenkombinationen ermittelt. Dabei muss ich einen Wert angeben können, welchen die 6 Zahlen, wenn man diese addiert, nicht überschreiten dürfen. Es sollen aber nur Zahlen zwischen 1 und 20 verwendet werden. Beispiel: Die Summe der 6 Zahlen darf nicht größer als 25 sein. 1. mögliche Zahlenkombination: 1,2,3,4,5,10 2. mögliche Zahlenkombination: 1,2,3,4,6,9 Es darf auch keine Kombination 2mal vorkommen. Hat vielleicht irgendjemand eine Ahnung wie das zu lösen ist? Es soll in C#.net geschrieben werden. Ein Hinweis wie ich das angehen kann wäre schon super. Lg Gerald |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() Die quick&dirty Version ist es einfach Schleifen zu schachteln zu schauen ob die Summe <Gesamtsumme ist, zu überprüfen ob diese Kombi schon war und die dann zu speichern. Das wird halt ziemlich langsam sein.
Ein bischen Flotter wird's wenn du die Schleifen entweder bis gesamtsumme-teilsumme oder bis 20 laufen lässt, je nachdem welches kleiner ist. Sinnvollerweise sollte die Schleifen auch noch von oben nach unten laufen, dann sollte die selbe Kombi nicht zweimal vorkommen (bin mir da aber nicht ganz sicher). Also etwas in der Art Code:
int teil, gesamt=0, max=20, ziel=125; for(int i1=max; i1>0; i1--){ teil = i1; int z2 = ((ziel-teil)>(max-1) ? (max-1) : (ziel-teil)); for(int i2=z2; i2>0; i2--){ teil=i1+i2; etc. } } jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|