Ozzy Ozborn
Erfahrenes Mitglied
Hi,
für ein Programm benötige ich einen Algorithmus, und hoffe, dass Ihr mir helfen könnt.
Und zwar geht es um folgendes:
man hat 3 Parameter: N, b(zwischen 0.5 und 1), und n.
Nun wird die Zahl N geteilt. Eine Hälfte wird mit b multipliziert, die andere Hälfte mit (1-b).
Auf die Entstandenen Zahlen wendet man dieses wieder an, das ganze n-mal. Also hat man am Ende 2^n Elemente.
Momentan kopiere ich immer die neuen Elemnte in einen neuen Vektor, und kopiere den dann auf den ersten zurück. ABer irgendwann sprengt das eben den Speicher. Deshalb wollte ich das jetzt rekursiv machen:
Teile wie oben, nur dann macht man z.B. nur mit der rechten Seite weiter. Die fertigen Elemente fügt man dann wieder in einen Vektor ein.
z.B.: N=8, b=0.5, n=2
8
4 4
4 2 2
4 2 1 1
4 2
4 1 1
4
2 2
2 1 1
2
1 1
Neuer Vektor: 1 1 1 1 1 1 1 1
Doch habe ich gerade Probleme, das umzusetzen.
Könnt Ihr mir vielleicht helfen?
MfG, Ozzy
für ein Programm benötige ich einen Algorithmus, und hoffe, dass Ihr mir helfen könnt.
Und zwar geht es um folgendes:
man hat 3 Parameter: N, b(zwischen 0.5 und 1), und n.
Nun wird die Zahl N geteilt. Eine Hälfte wird mit b multipliziert, die andere Hälfte mit (1-b).
Auf die Entstandenen Zahlen wendet man dieses wieder an, das ganze n-mal. Also hat man am Ende 2^n Elemente.
Momentan kopiere ich immer die neuen Elemnte in einen neuen Vektor, und kopiere den dann auf den ersten zurück. ABer irgendwann sprengt das eben den Speicher. Deshalb wollte ich das jetzt rekursiv machen:
Teile wie oben, nur dann macht man z.B. nur mit der rechten Seite weiter. Die fertigen Elemente fügt man dann wieder in einen Vektor ein.
z.B.: N=8, b=0.5, n=2
8
4 4
4 2 2
4 2 1 1
4 2
4 1 1
4
2 2
2 1 1
2
1 1
Neuer Vektor: 1 1 1 1 1 1 1 1
Doch habe ich gerade Probleme, das umzusetzen.
Könnt Ihr mir vielleicht helfen?
MfG, Ozzy