Convertir une plage numérique en une autre plage, en conservant le rapport
Convertir une plage numérique en une autre tout en préservant leurs proportions relatives peut être une technique utile dans diverses applications. Considérons un scénario dans lequel vous devez compresser des valeurs de points d'une plage de -16 000,00 à 16 000,00 dans une plage entière de 0 à 100.
La formule suivante fournit un algorithme général pour cette conversion :
NewValue = (((OldValue - OldMin) * (NewMax - NewMin)) / (OldMax - OldMin)) + NewMin
où :
Cette formule calcule essentiellement le rapport de la nouvelle valeur à la nouvelle plage et l'applique au rapport de l'ancienne valeur à l'ancienne plage. L'extrait de code Python suivant montre comment utiliser cette formule :
old_min = -16000.00 old_max = 16000.00 new_min = 0 new_max = 100 old_value = 0.0 new_value = (((old_value - old_min) * (new_max - new_min)) / (old_max - old_min)) + new_min print(new_value)
La formule permet également d'ajuster l'une ou l'autre plage en modifiant les valeurs de OldMin, OldMax, NewMin et NewMax. Par exemple, si vous souhaitez convertir des valeurs comprises entre -50 et 800 vers la plage 0-100, vous utiliserez la formule suivante :
NewValue = (((OldValue + 50) * 100) / (850))
Cette formule ajuste l'ancienne plage en ajoutant 50 à chaque valeur pour le déplacer du côté positif, puis réduire sa taille d'un facteur de 850/(850-50) pour l'adapter à la nouvelle plage.
En utilisant cet algorithme généralisé, vous pouvez convertir des plages numériques et conserver leurs ratios relatifs, même lorsque les plages varient ou que vous devez ajuster les valeurs minimales et maximales.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!