Rifleman - 40
Experte
(offline)
Dabei seit 09.2003
1540
Beiträge
|
Geschrieben am: 26.05.2011 um 23:29 Uhr
Zuletzt editiert am: 26.05.2011 um 23:34 Uhr
|
|
Zitat von hipi: Ich gebe ein Zahl x vor. Beispielsweise 100
UNd ich geben weiteren Zahlen vor Beispielsweise
a= 2
b= 50
c= 20
UNd das Programm soll mir dann alle mögliche ganzzahlige Kombinationen aus a b und c für x nennen.
Also 50*a oder 2*b oder 25*a+b oder 2*c+b+5*c usw.
Ein einfaches Konsolenprogramm (z.B. in C) sollte das problemlos können.
Eine Möglichkeit wäre ein einfacher rekursiver Algorithmus, der alle Kombinationen durchgeht und alle Kombinationen, die "aufgehen" ausgibt. Da die Anzahl der Möglichkeiten sehr überschaubar bleibt dürfte die Geschwindigkeit kein Problem werden...
Das könnte man dann in eine Datei ausgeben und, wenn man das Ausgabeformat passend wählt, könnte man nach bestimmten Gruppen von Kombinationen daraus (z.B. mit grep) filtern...
Es sind die kleinen Dinge, die einen zum Wahnsinn treiben.
|
|
Rifleman - 40
Experte
(offline)
Dabei seit 09.2003
1540
Beiträge
|
Geschrieben am: 28.05.2011 um 17:35 Uhr
Zuletzt editiert am: 28.05.2011 um 17:46 Uhr
|
|
Interessiert das noch?
Falls ja, ich habe schnell ein Programm herbeidilettiert das in etwa sowas macht...
Beispiel: Summe 720, Fragmente 30,120,210 (hardcoded, aber das lässt sich leicht ändern)
Zitat: $ ./test
24x(30) 0x(120) 0x(210)
20x(30) 1x(120) 0x(210)
17x(30) 0x(120) 1x(210)
16x(30) 2x(120) 0x(210)
13x(30) 1x(120) 1x(210)
12x(30) 3x(120) 0x(210)
10x(30) 0x(120) 2x(210)
9x(30) 2x(120) 1x(210)
8x(30) 4x(120) 0x(210)
6x(30) 1x(120) 2x(210)
5x(30) 3x(120) 1x(210)
4x(30) 5x(120) 0x(210)
3x(30) 0x(120) 3x(210)
2x(30) 2x(120) 2x(210)
1x(30) 4x(120) 1x(210)
0x(30) 6x(120) 0x(210)
Zitat: $ ./test > test.txt
$ cat ./test.txt | grep '2x(210)'
10x(30) 0x(120) 2x(210)
6x(30) 1x(120) 2x(210)
2x(30) 2x(120) 2x(210)
/edit:
Verwendet eine linked list und funktioniert mit einer beliebigen Anzahl von Fragmenten und großen Zahlen. Ist aber schrecklich ineffizient und skaliert exponentiell mit der Anzahl von Fragmenten
Es sind die kleinen Dinge, die einen zum Wahnsinn treiben.
|
|
hipi - 38
Champion
(offline)
Dabei seit 09.2002
4152
Beiträge
|
Geschrieben am: 28.05.2011 um 19:02 Uhr
|
|
Also wenn ich das jetzt richtig Überblicke ist es genau das was ich suche.
Könnte ich dieses Programm bekommen?
FÜR eine Ban Funktion im TU-Forum!
|
|
Rifleman - 40
Experte
(offline)
Dabei seit 09.2003
1540
Beiträge
|
Geschrieben am: 28.05.2011 um 19:18 Uhr
|
|
Zitat von hipi: Also wenn ich das jetzt richtig Überblicke ist es genau das was ich suche.
Könnte ich dieses Programm bekommen?
Das ist weniger ein Programm als ein Hinweis, wie man das machen könnte 
Und schon gar kein Beispiel für guten Stil oder sonst etwas...
Naja, hier ist es. Vielleicht nützt es ja...
Es sind die kleinen Dinge, die einen zum Wahnsinn treiben.
|
|
hipi - 38
Champion
(offline)
Dabei seit 09.2002
4152
Beiträge
|
Geschrieben am: 28.05.2011 um 19:22 Uhr
|
|
Hm, nunja... für mich steht auf der Seite leider nur "bahnhof, Bahnhof, Bahnhof"
FÜR eine Ban Funktion im TU-Forum!
|
|
Rifleman - 40
Experte
(offline)
Dabei seit 09.2003
1540
Beiträge
|
Geschrieben am: 28.05.2011 um 19:30 Uhr
|
|
Zitat von hipi: Hm, nunja... für mich steht auf der Seite leider nur "bahnhof, Bahnhof, Bahnhof"
Mh...
Dann wirf einfach einen Blick auf die main(). sum gibt die Summe vor und mit addfragment(&glist,x) wird x als mögliches Fragment vorgegeben. Mehr brauchst du nicht ändern.
Falls ich die Zeit finde kann ich daraus eventuell noch etwas nützlicheres machen, garantieren kann ich das aber nicht...
Es sind die kleinen Dinge, die einen zum Wahnsinn treiben.
|
|
hipi - 38
Champion
(offline)
Dabei seit 09.2002
4152
Beiträge
|
Geschrieben am: 28.05.2011 um 19:35 Uhr
|
|
Also ich habe shcon grundsätzlich das Problem ich weiß gar nicht wo ich es das EIngeben soll.
Brauch ich dafür ein bestimmtes Programm und wenn ja welches?
FÜR eine Ban Funktion im TU-Forum!
|
|
Rifleman - 40
Experte
(offline)
Dabei seit 09.2003
1540
Beiträge
|
Geschrieben am: 28.05.2011 um 19:39 Uhr
|
|
Zitat von hipi: Also ich habe shcon grundsätzlich das Problem ich weiß gar nicht wo ich es das EIngeben soll.
Brauch ich dafür ein bestimmtes Programm und wenn ja welches?
Du brauchst nur einen C-Compiler, z.B. gcc.
Es sind die kleinen Dinge, die einen zum Wahnsinn treiben.
|
|