Begini cara saya memahaminya:
Persentase apa yang xada dalam kisaran
Anggaplah Anda memiliki rentang dari 0hingga 100. Dengan nomor acak dari kisaran itu, "persen" berapa dari kisaran itu? Ini harus cukup sederhana, 0akan 0%, 50akan 50%dan 100akan terjadi 100%.
Sekarang, bagaimana jika jangkauan Anda adalah 20untuk 100? Kami tidak dapat menerapkan logika yang sama seperti di atas (bagi 100) karena:
20 / 100
tidak memberi kita 0( 20seharusnya 0%sekarang). Ini harus mudah diperbaiki, kita hanya perlu membuat pembilang 0untuk kasus 20. Kita bisa melakukannya dengan mengurangi:
(20 - 20) / 100
Namun, ini tidak berfungsi 100lagi karena:
(100 - 20) / 100
tidak memberi kita 100%. Sekali lagi, kita dapat memperbaikinya dengan mengurangi dari penyebut juga:
(100 - 20) / (100 - 20)
Persamaan yang lebih digeneralisasi untuk mengetahui% xterletak pada rentang adalah:
(x - MIN) / (MAX - MIN)
Rentang skala ke rentang lain
Sekarang kita tahu berapa persen angka yang berada dalam suatu rentang, kita dapat menerapkannya untuk memetakan angka ke rentang lain. Mari kita lihat sebuah contoh.
old range = [200, 1000]
new range = [10, 20]
Jika kami memiliki nomor dalam rentang lama, berapakah angka tersebut dalam rentang baru? Katakanlah angkanya 400. Pertama, cari tahu berapa persen 400dalam kisaran lama. Kita dapat menerapkan persamaan kita di atas.
(400 - 200) / (1000 - 200) = 0.25
Jadi, 400terletak pada 25%kisaran lama. Kami hanya perlu mencari tahu nomor berapa 25%dari kisaran baru. Pikirkan tentang apa 50%dari [0, 20]yang. Apakah itu 10benar? Bagaimana Anda sampai pada jawaban itu? Baiklah, kita bisa melakukan:
20 * 0.5 = 10
Tapi, bagaimana dengan dari [10, 20]? Kita perlu mengubah segalanya 10sekarang. misalnya:
((20 - 10) * 0.5) + 10
formula yang lebih umum adalah:
((MAX - MIN) * PERCENT) + MIN
Untuk contoh asli apa 25%dari [10, 20]adalah:
((20 - 10) * 0.25) + 10 = 12.5
Jadi, 400dalam kisaran [200, 1000]akan memetakan ke 12.5dalam kisaran[10, 20]
TLDR
Untuk memetakan xdari rentang lama ke rentang baru:
OLD PERCENT = (x - OLD MIN) / (OLD MAX - OLD MIN)
NEW X = ((NEW MAX - NEW MIN) * OLD PERCENT) + NEW MIN