Also habe ich eine Funktion, die immer eine Zahl aus dem Bereich & lt; 0; 99 & gt; (d. h. 0, 1, ... 99 - ganze Zahlen).
Was wäre der beste Weg, diese Zahlen korrekt in den Bereich & lt; -1.0; 1.0 & gt; zu legen?
0 wäre natürlich -1.0 und 99 wäre 1.0. Wie berechnet man die Zahlen zwischen?
Verwenden Sie eine lineare Zuordnung:
%Vor%Wie es funktioniert:
Sie können natürlich die Schritte ((x / 99.0) * 2) zu einer einzigen Division kombinieren, wenn Sie möchten. Ich teile es nur für Klarheit.
Skalieren Sie nicht manuell. Man muss viel zu viel auf die Mathematik achten, um herauszufinden, was wirklich beabsichtigt ist. Verwenden Sie eine Hilfsfunktion.
%Vor%Ich habe festgestellt, dass dies eine der nützlichsten Funktionen in jeder Sprache ist. Sie können sehen, was die scale () -Aufrufe auf einen Blick tun.
Um einen Wert x
aus diesem Bereich abzubilden:
Zu diesem Bereich:
%Vor%Sie verwenden diese Formel:
%Vor%Die Funktionsweise eines solchen Mappings ist wie folgt:
%Vor%Schritt für Schritt:
Sie berechnen zuerst ein Verhältnis von wie weit in a..b
der x
Wert ist:
Dieser Wert liegt zwischen 0 und 1.
Dann verwenden Sie diesen Wert, um zu berechnen, wie weit in a'..b'
der Wert liegen sollte:
In Ihrem speziellen Fall:
%Vor%oder in vertraglicher Form:
%Vor%Hinweis : Wenn Sie dies in einer Programmiersprache tun, in der die Ganzzahl dividiert durch eine andere Ganzzahl eine Ganzzahl ist, sollten Sie die Werte in Gleitkommazahlen umwandeln, um Genauigkeitsverluste zu vermeiden:
%Vor%Tags und Links python