Einzelnen Beitrag anzeigen

Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#4

Re: Zahl in Summanden zerlegen

  Alt 15. Jun 2004, 09:12
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]
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat