Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Wissenschaft und Technik

Programm zum berechnen einer Zusammensetzung

<<< zurück   -1- -2-  
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.

<<< zurück
 
-1- -2- [Antwort schreiben]

Forum / Wissenschaft und Technik

(c) 1999 - 2025 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -