İşte böyle anlıyorum:
xBir aralıkta yüzde ne kadar
Let Diyelim ki bir aralığı vardır varsayalım 0için 100. Bu aralıktan rasgele bir sayı verildiğinde, bu aralıktan ne kadar "yüzde" yer alıyor? Bu oldukça basit 0olmalı 0%, 50olur , olur 50%ve 100olur 100%.
Şimdi, aralık neydi 20için 100? Yukarıdaki ile aynı mantığı uygulayamayız (100'e bölün) çünkü:
20 / 100
bize vermiyor 0( şimdi 20olmalı 0%). Bunu düzeltmek basit olmalı, sadece 0durum için pay yapmamız gerekiyor 20. Bunu çıkararak yapabiliriz:
(20 - 20) / 100
Ancak, bu 100artık işe yaramaz çünkü:
(100 - 20) / 100
bize vermiyor 100%. Yine, paydadan da çıkararak bunu düzeltebiliriz:
(100 - 20) / (100 - 20)
Bir xaralı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 400eski aralıkta olduğunu bulun. Yukarıdaki denklemimizi uygulayabiliriz.
(400 - 200) / (1000 - 200) = 0.25
Yani, eski aralığın 400iç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 10mu? 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, 400aralıktaki [200, 1000]karşılık gelecek 12.5aralığında[10, 20]
TLDR
xEski 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