>  기사  >  백엔드 개발  >  숫자 범위를 변환할 때 값 사이의 비율을 어떻게 유지합니까?

숫자 범위를 변환할 때 값 사이의 비율을 어떻게 유지합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-07 11:39:03378검색

How do I preserve the ratio between values when converting number ranges?

숫자 범위 변환 시 비율 유지

데이터 조작 영역에서는 값을 한 범위에서 다른 범위로 변환해야 하는 경우가 종종 있습니다. 상대적인 비율을 유지합니다. 이는 데이터를 압축하거나 서로 다른 스케일 간에 값을 매핑할 때 특히 유용할 수 있습니다.

-16000.00에서 16000.00까지의 값 범위를 보다 관리하기 쉬운 정수 범위인 0-100으로 변환하는 작업을 고려해 보겠습니다. 우리는 변환 시 원래 값 간의 비율이 유지되도록 하려고 합니다.

이 비율 보존을 달성하는 열쇠는 다음 수식에 있습니다.

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

여기서:

  • OldValue는 이전 범위 내의 원래 값입니다.
  • OldMin과 OldMax는 이전 범위의 최소값과 최대값입니다.
  • NewMax와 NewMin은 새 범위의 최대값과 최소값입니다. range

더 자세히 분석하려면:

  • 이전 범위 내에서 OldValue의 정규화된 비율을 계산합니다: (OldValue - OldMin) / (OldMax - OldMin)
  • 이 비율에 새 범위의 크기를 곱합니다: (NewMax - NewMin)
  • 이 결과를 새 범위의 최소값으로 이동합니다: NewMin

이 공식을 사용하면 이전 범위 내의 값 간 비율이 새 범위 내에서 유지됩니다.

예를 들어 OldValue가 8000.00, OldMin이 -16000.00, OldMax가 16000.00, NewMax가 100, NewMin이 0인 경우 , NewValue는 다음과 같이 계산됩니다.

NewValue = (((8000.00 - (-16000.00)) * (100 - 0)) / (16000.00 - (-16000.00))) + 0
= (((24000.00) * (100)) / (32000.00)) + 0
= 75.00

따라서 이전 범위의 8000.00은 새 범위의 75.00에 해당하며 이러한 값 간의 상대 비율을 유지합니다. 이 공식은 이전 범위가 0이거나 원하는 새 범위가 0에서 시작하지 않는 경우를 처리하기 위해 추가로 사용자 정의할 수 있습니다.

위 내용은 숫자 범위를 변환할 때 값 사이의 비율을 어떻게 유지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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