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

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-08 02:11:02636검색

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으로 문의하세요.