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
lain
{
NewRange = (NewMax - NewMin) NewValue = (((OldValue - OldMin) * NewRange) / OldRange) + NewMin
}
``
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
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!