ホームページ  >  記事  >  バックエンド開発  >  数値範囲を変換するときに値間の比率を維持するにはどうすればよいですか?

数値範囲を変換するときに値間の比率を維持するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-07 11:39:03310ブラウズ

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 に対応し、これらの値間の相対比率が維持されます。この式をさらにカスタマイズして、古い範囲がゼロである場合や、必要な新しい範囲がゼロで始まらない場合を処理することができます。

以上が数値範囲を変換するときに値間の比率を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。