比率を維持しながら数値範囲を変換する
相対的な比率を維持しながら別の範囲に変換する必要がある値の範囲を指定すると、次のようになります。一般的なアルゴリズムとその 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):
"""比率を維持しながら、ある範囲から別の範囲に値を変換します。"""
old_range = old_max - old_min
if old_range == 0:
return new_min
new_range = new_max - new_min
return (((old_value - old_min) * new_range) / old_range) new_min
``
以上が比率を維持しながら数値範囲を変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。