首頁 >後端開發 >Python教學 >如何在保持比率的同時將數字範圍轉換為另一個範圍?

如何在保持比率的同時將數字範圍轉換為另一個範圍?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-08 02:11:02710瀏覽

How to Convert a Number Range to Another Range While Maintaining Ratio?

將數字範圍轉換為另一個範圍,保持比例

將數字範圍轉換為另一個數字範圍,同時保留其相對比例可能是一種有用的技術在各種應用。讓我們考慮一個場景,您需要將 -16000.00 到 16000.00 範圍內的點值壓縮為 0-100 的整數範圍。

以下公式提供了此轉換的通用演算法:

NewValue = (((OldValue - OldMin) * (NewMax - NewMin)) / (OldMax - OldMin)) + NewMin

其中:

  • OldValue 是舊範圍內的原始值
  • OldMin 是舊範圍內的最小值
  • OldMax 是最大舊範圍內
  • NewMax 是新範圍內的最大值
  • NewMin 是新範圍內的最小值

這個公式本質上是計算新值到新範圍,並將其應用於舊值與舊範圍的比率。以下 Python 程式碼片段示範如何使用此公式:

old_min = -16000.00
old_max = 16000.00
new_min = 0
new_max = 100
old_value = 0.0

new_value = (((old_value - old_min) * (new_max - new_min)) / (old_max - old_min)) + new_min

print(new_value)

公式還允許透過更改 OldMin、OldMax、NewMin 和 NewMax 的值來調整任一範圍。例如,如果您想將-50 到800 範圍內的值轉換為0-100 範圍內的值,則可以使用以下公式:

NewValue = (((OldValue + 50) * 100) / (850))

此公式透過向每個值添加50 來調整舊範圍。值將其移至正數,然後將其大小減小 850/(850-50) 倍以使其適合新範圍。

透過使用此通用演算法,您可以轉換數值範圍並保持它們的相對比率,即使範圍變化或您需要調整最小值和最大值。

以上是如何在保持比率的同時將數字範圍轉換為另一個範圍?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn