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

Bagaimana untuk Menukar Julat Nombor Semasa Mengekalkan Nisbah?

Barbara Streisand
Lepaskan: 2024-11-07 21:17:02
asal
971 orang telah melayarinya

How to Convert Number Ranges While Preserving Ratios?

Menukar Julat Nombor Semasa Mengekalkan Nisbah

Memandangkan julat nilai yang perlu ditukar kepada julat lain, mengekalkan nisbah relatifnya, kami mempersembahkan algoritma umum dan pelaksanaan Pythonnya.

Algoritma:

Untuk menukar nilai daripada julat lama (OldMin, OldMax) kepada julat baharu (NewMin, NewMax ) sambil mengekalkan nisbah:

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

Atau lebih mudah dibaca:

``
OldMax = (OldMax - OldMin)
NewRange = (NewMax - NewMin)
NewValue = (((OldValue - OldMin) * NewRange) / OldRange) NewMin
``

Jika julat lama mempunyai rentang sifar (OldMin = OldMax), pengiraan diubah suai kepada:

``
OldRange = (OldMax - OldMin)
jika (OldRange == 0)

NewValue = NewMin
Salin selepas log masuk

lain
{

NewRange = (NewMax - NewMin)
NewValue = (((OldValue - OldMin) * NewRange) / OldRange) + NewMin
Salin selepas log masuk

}
``

Dalam senario ini , NewMin ialah pilihan lalai untuk nilai baharu, tetapi pilihan lain seperti NewMax atau puratanya mungkin juga sesuai mengikut konteks.

Pelaksanaan Python:

``
def convert_range(old_value, old_min, old_max, new_min, new_max):
"""Menukar nilai dari satu julat ke yang lain sambil mengekalkan nisbah."""
old_range = old_max - old_min
jika old_range = = 0:

return new_min
Salin selepas log masuk

julat_baharu = new_maks - new_min
pulangan (((nilai_lama - old_min) * julat_baru) / julat_lama) new_min
``

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan