So verstehe ich es:
Wie viel Prozent x
liegen in einem Bereich ?
Nehmen wir an, Sie haben einen Bereich von 0
bis 100
. In welchem "Prozent" aus diesem Bereich liegt eine beliebige Zahl aus diesem Bereich? Dies sollte ziemlich einfach sein, 0
wäre 0%
, 50
wäre 50%
und 100
wäre 100%
.
Nun, was ist, wenn Ihr Angebot war 20
zu 100
? Wir können nicht dieselbe Logik wie oben anwenden (durch 100 teilen), weil:
20 / 100
gibt uns nicht 0
( 20
sollte 0%
jetzt sein). Dies sollte einfach zu beheben sein, wir müssen nur den Zähler 0
für den Fall von machen 20
. Wir können das tun, indem wir subtrahieren:
(20 - 20) / 100
Dies funktioniert jedoch nicht 100
mehr, weil:
(100 - 20) / 100
gibt uns nicht 100%
. Auch dies können wir beheben, indem wir vom Nenner abziehen:
(100 - 20) / (100 - 20)
Eine allgemeinere Gleichung, um herauszufinden, wie viel Prozent x
in einem Bereich liegen, wäre:
(x - MIN) / (MAX - MIN)
Skalieren Sie den Bereich auf einen anderen Bereich
Nachdem wir nun wissen, wie viel Prozent einer Zahl in einem Bereich liegen, können wir sie anwenden, um die Zahl einem anderen Bereich zuzuordnen. Lassen Sie uns ein Beispiel durchgehen.
old range = [200, 1000]
new range = [10, 20]
Wenn wir eine Nummer im alten Bereich haben, welche wäre die Nummer im neuen Bereich? Nehmen wir an, die Nummer ist 400
. Stellen Sie zunächst fest, wie viel Prozent 400
im alten Bereich liegen. Wir können unsere obige Gleichung anwenden.
(400 - 200) / (1000 - 200) = 0.25
Liegt also 400
im 25%
alten Bereich. Wir müssen nur herausfinden, welche Nummer 25%
aus dem neuen Bereich stammt. Überlegen Sie, was 50%
von [0, 20]
ist. Es wäre 10
richtig? Wie sind Sie zu dieser Antwort gekommen? Nun, wir können einfach tun:
20 * 0.5 = 10
Aber was ist mit von [10, 20]
? Wir müssen 10
jetzt alles verschieben . z.B:
((20 - 10) * 0.5) + 10
Eine allgemeinere Formel wäre:
((MAX - MIN) * PERCENT) + MIN
Zum Original Beispiel dafür , was 25%
der [10, 20]
ist:
((20 - 10) * 0.25) + 10 = 12.5
Also, 400
in der Reichweite [200, 1000]
würde 12.5
in der Reichweite abgebildet[10, 20]
TLDR
So ordnen Sie den x
alten Bereich dem neuen Bereich zu:
OLD PERCENT = (x - OLD MIN) / (OLD MAX - OLD MIN)
NEW X = ((NEW MAX - NEW MIN) * OLD PERCENT) + NEW MIN