>  기사  >  백엔드 개발  >  비율을 유지하면서 숫자 범위를 변환하는 방법은 무엇입니까?

비율을 유지하면서 숫자 범위를 변환하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-07 21:17:02922검색

How to Convert Number Ranges While Preserving Ratios?

비율을 유지하면서 숫자 범위 변환

상대 비율을 유지하면서 다른 범위로 변환해야 하는 값 범위가 주어지면 일반적인 알고리즘과 해당 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
``

이전 범위의 범위가 0인 경우(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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.