Đây là cách tôi hiểu nó:
Bao nhiêu phần trăm x
nằm trong một phạm vi
Giả sử bạn có một phạm vi từ 0
đến 100
. Cho một số tùy ý từ phạm vi đó, "phần trăm" từ phạm vi đó nằm ở đâu? Điều này sẽ khá đơn giản, 0
sẽ 0%
, 50
sẽ 50%
và 100
sẽ 100%
.
Bây giờ, những gì nếu phạm vi của bạn là 20
để 100
? Chúng tôi không thể áp dụng logic tương tự như trên (chia cho 100) vì:
20 / 100
không cho chúng tôi 0
( 20
nên là 0%
bây giờ). Điều này nên đơn giản để sửa chữa, chúng ta chỉ cần làm tử số 0
cho trường hợp 20
. Chúng tôi có thể làm điều đó bằng cách trừ:
(20 - 20) / 100
Tuy nhiên, điều này không còn hiệu quả 100
nữa vì:
(100 - 20) / 100
không cho chúng tôi 100%
. Một lần nữa, chúng ta có thể khắc phục điều này bằng cách trừ đi mẫu số:
(100 - 20) / (100 - 20)
Một phương trình tổng quát hơn để tìm ra% x
nằm trong một phạm vi sẽ là gì:
(x - MIN) / (MAX - MIN)
Phạm vi phạm vi đến phạm vi khác
Bây giờ chúng ta đã biết phần trăm của một số nằm trong một phạm vi, chúng ta có thể áp dụng nó để ánh xạ số đó sang một phạm vi khác. Chúng ta hãy đi qua một ví dụ.
old range = [200, 1000]
new range = [10, 20]
Nếu chúng ta có một số trong phạm vi cũ, thì số đó sẽ là gì trong phạm vi mới? Hãy nói số lượng là 400
. Đầu tiên, hãy tìm ra bao nhiêu phần trăm 400
trong phạm vi cũ. Chúng ta có thể áp dụng phương trình của chúng tôi ở trên.
(400 - 200) / (1000 - 200) = 0.25
Vì vậy, 400
nằm trong 25%
phạm vi cũ. Chúng ta chỉ cần tìm ra số nào là 25%
của phạm vi mới. Hãy suy nghĩ về những gì 50%
của [0, 20]
là. Nó sẽ 10
đúng chứ? Làm thế nào bạn đi đến câu trả lời? Vâng, chúng ta có thể làm:
20 * 0.5 = 10
Nhưng, những gì về từ [10, 20]
? Chúng ta cần thay đổi mọi thứ 10
ngay bây giờ. ví dụ:
((20 - 10) * 0.5) + 10
một công thức tổng quát hơn sẽ là:
((MAX - MIN) * PERCENT) + MIN
Để ví dụ ban đầu của những gì 25%
của [10, 20]
là:
((20 - 10) * 0.25) + 10 = 12.5
Vì vậy, 400
trong phạm vi [200, 1000]
sẽ ánh xạ tới 12.5
trong phạm vi[10, 20]
TLD
Để ánh xạ x
từ phạm vi cũ sang phạm vi mới:
OLD PERCENT = (x - OLD MIN) / (OLD MAX - OLD MIN)
NEW X = ((NEW MAX - NEW MIN) * OLD PERCENT) + NEW MIN