İşte böyle anlıyorum:
x
Bir aralıkta yüzde ne kadar
Let Diyelim ki bir aralığı vardır varsayalım 0
için 100
. Bu aralıktan rasgele bir sayı verildiğinde, bu aralıktan ne kadar "yüzde" yer alıyor? Bu oldukça basit 0
olmalı 0%
, 50
olur , olur 50%
ve 100
olur 100%
.
Şimdi, aralık neydi 20
için 100
? Yukarıdaki ile aynı mantığı uygulayamayız (100'e bölün) çünkü:
20 / 100
bize vermiyor 0
( şimdi 20
olmalı 0%
). Bunu düzeltmek basit olmalı, sadece 0
durum için pay yapmamız gerekiyor 20
. Bunu çıkararak yapabiliriz:
(20 - 20) / 100
Ancak, bu 100
artık işe yaramaz çünkü:
(100 - 20) / 100
bize vermiyor 100%
. Yine, paydadan da çıkararak bunu düzeltebiliriz:
(100 - 20) / (100 - 20)
Bir x
aralıkta % 'nin ne olduğunu bulmak için daha genel bir denklem şöyle olur:
(x - MIN) / (MAX - MIN)
Aralığı başka bir aralığa ölçeklendir
Artık bir sayının yüzde kaçının bir aralıkta olduğunu bildiğimize göre, sayıyı başka bir aralığa eşlemek için uygulayabiliriz. Bir örnek verelim.
old range = [200, 1000]
new range = [10, 20]
Eski aralıkta bir numaramız olsaydı, sayı yeni aralıkta ne olurdu? Diyelim ki sayı 400
. İlk olarak, yüzde kaçının 400
eski aralıkta olduğunu bulun. Yukarıdaki denklemimizi uygulayabiliriz.
(400 - 200) / (1000 - 200) = 0.25
Yani, eski aralığın 400
içinde yatıyor 25%
. Sadece 25%
yeni aralıkta hangi sayının olduğunu bulmamız gerekiyor . Ne 50%
olduğunu düşünün [0, 20]
. Doğru olur 10
mu? Bu cevaba nasıl ulaştınız? Sadece yapabiliriz:
20 * 0.5 = 10
Ama ne olacak [10, 20]
? Şimdiye kadar her şeyi kaydırmamız gerekiyor 10
. Örneğin:
((20 - 10) * 0.5) + 10
daha genel bir formül şöyle olur:
((MAX - MIN) * PERCENT) + MIN
Ne olduğuna 25%
dair orijinal örneğe [10, 20]
:
((20 - 10) * 0.25) + 10 = 12.5
Yani, 400
aralıktaki [200, 1000]
karşılık gelecek 12.5
aralığında[10, 20]
TLDR
x
Eski aralıktan yeni aralığa eşlemek için:
OLD PERCENT = (x - OLD MIN) / (OLD MAX - OLD MIN)
NEW X = ((NEW MAX - NEW MIN) * OLD PERCENT) + NEW MIN