Ich vermute da fehlen noch ein paar Bedingungen,
wenn Du zb (400*N)div DN=1 hast, dann müßtest Du N=1 und DN=400 setzen.
Das ist mit 1..255 nicht zu realisieren.
Gruß
K-H
Du irrst.
Grundsätzlich hast du insofern Recht, dass keine exakten Resultate möglich sind.
Jedoch sind exakte Resultate auch nicht gefragt.
Ich schrieb
Zitat:
Gesucht ist ein Bruch, für den gilt:
FTL * Nominator div Denominator = TL (bzw. möglichst nahe bei TL)
Die Betonung liegt auf "möglichst nahe bei TL".
"Du irrst" schrieb ich, weil gerade bei dem von dir genannten Beispiel das Resultat exakt ist.
Zitat:
wenn Du zb (400*N)div DN=1 hast, dann müßtest Du N=1 und DN=400 setzen
Nein!
FTL=400, TL=1, N=1, DN=255
Da ergibt FTL * N div DN = 400 * 1 div 255 = 1, also exakt.
Die größte Abweichung die bei den von mir genannten Bereichen (FTL= 400..1200 und TL = 1..32767) und der Funktion GetFraction so wie sie ist, erscheint bei folgenden Werten:
FTL=450, TL= 32718, Bruch= 255/4, Abweichung = 4031
Lasse ich in der Funktion GetFraction die Schleife von 100 bis 255 laufen, erscheint die größte Abweichung bei den Werten:
FTL=510, TL= 32725, Bruch= 128/2, Abweichung = 85
Dummerweise habe ich in #1 die theoretischen Min/Max Werte für TL genannt.
In der Praxis liegt TL immer im Bereich 25 bis 2400.
Und dann liegt die maximale Abweichung bei den Werten:
FTL=400, TL= 2385, Bruch= 245/41, Abweichung = 5,
Und diese Abweichung ist für mich OK.