Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menukar Julat Nombor Semasa Memelihara Nisbah?

Bagaimana untuk Menukar Julat Nombor Semasa Memelihara Nisbah?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-09 02:48:02483semak imbas

How to Convert a Number Range While Preserving Ratio?

Menukar Julat Nombor Semasa Memelihara Nisbah

Memetakan julat nombor kepada yang lain sambil mengekalkan perhubungan berkadar boleh menjadi tugas yang berguna dalam data manipulasi dan pemprosesan imej. Transformasi ini memastikan bahawa semua nilai dalam julat asal diwakili secara berkadar dalam julat baharu.

Untuk mencapainya, kita boleh menggunakan formula berikut:

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

di mana:

  • OldValue ialah nilai asal yang akan ditukar
  • OldMin dan OldMax mewakili nilai minimum dan maksimum julat asal, masing-masing
  • NewMin dan NewMax mewakili nilai minimum dan maksimum bagi julat baharu, masing-masing

Formula ini memastikan nisbah nilai dikekalkan antara julat asal dan julat baharu. Dalam erti kata lain, jika nilai dalam julat asal adalah dua kali lebih besar daripada nilai lain, nilai sepadannya dalam julat baharu juga akan menjadi dua kali lebih besar.

Sebagai contoh, jika kita mempunyai fail imej dengan titik nilai antara -16000.00 hingga 16000.00 dan ingin memampatkannya ke dalam julat integer 0-100, kita boleh menggunakan formula seperti berikut:

NewValue = (((OldValue - (-16000.00)) * (100 - 0)) / (16000.00 - (-16000.00))) + 0

Ini memastikan julat nilai asal dipetakan secara linear kepada yang baharu julat, mengekalkan nisbah antara nilai.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Julat Nombor Semasa Memelihara Nisbah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn