Zitat von
ibp:
@ fiasko glaube nicht das mit deinem algorythmus alle kombinationen herauskommen
... versuch es mal damit
z=8, n=3
Das wäre dann:
zahl(3,3,8,0,1,'');
Code:
1tl1@home2:~/tmp$ ./test
1 1 6
1 2 5
1 3 4
2 2 4
2 3 3
das sind doch alle Lösungen???
Zitat von
ibp:
1. dazu brauchst du ein array der größe [(z-1)!,n].
2. das sollte sich mit dynamischen arrays lösen lassen.
3. durchlaufe das array und lösche alle felder die nicht summe(array[i,1..n])=z sind!
4. alles was übrig bleibt sollten alle kombinationen sein...
das ist aber reichlich uneffektiv. Mußt ja erstmal das Array aufbauen... außerdem braucht sich mein Algorithmus keine Gedanken um die Reihenfolge zu machen.
[edit]
Gerade aufgefallen:
Zitat von
ibp:
1. dazu brauchst du ein array der größe [(z-1)!,n].
Das sind für z.B. z=20: 2432902008176640000*n Felder, mit Int und n=5 also 48658040163532800000, d.h. ~44254229 TERRABYTEs!
[/edit]