在保留比率的同時轉換數字範圍
給定需要轉換為另一個範圍的一系列值,保持它們的相對比率,我們展示一個通用演算法及其Python 實作。
演算法:
將數值從舊範圍(OldMin, OldMax) 轉換為新範圍(NewMin, NewMax) )同時保持比率:
``
NewValue = (((OldValue - OldMin) * (NewMax - NewMin)) / (OldMax - OldMin)) NewMin
``
或更容易閱讀:
``
OldRange = (OldMax - OldMin)
NewRange = (NewMax - NewMin)
NewValue = (((OldValue - OldMin) * NewRange) / OldRange) NewMin
``
🎜>如果舊範圍的跨度為零(OldMin = OldMax),則計算將修改為:
``
OldRange = (OldMax - OldMin)
if (OldRange == 0)
NewValue = NewMin
else
{
NewRange = (NewMax - NewMin) NewValue = (((OldValue - OldMin) * NewRange) / OldRange) + NewMin
}
``
在這種情況下,NewMin 是新值的預設選擇,但其他選項(如NewMax 或其平均值)也可能適合上下文。
Python 實作:
``
def Convert_range(old_value, old_min, old_max, new_min, new_max):
"``
以上是如何在保留比率的同時轉換數字範圍?的詳細內容。更多資訊請關注PHP中文網其他相關文章!