Konvertieren von Zahlenbereichen unter Beibehaltung von Verhältnissen
Angesichts einer Reihe von Werten, die in einen anderen Bereich umgewandelt werden müssen, unter Beibehaltung ihrer relativen Verhältnisse, haben wir Präsentieren Sie einen allgemeinen Algorithmus und seine Python-Implementierung.
Algorithmus:
Um einen Wert aus einem alten Bereich (OldMin, OldMax) in einen neuen Bereich (NewMin, NewMax) umzuwandeln ) unter Beibehaltung des Verhältnisses:
``
NewValue = (((OldValue - OldMin) * (NewMax - NewMin)) / (OldMax - OldMin)) NewMin
``
Oder lesbarer:
``
OldRange = (OldMax - OldMin)
NewRange = (NewMax - NewMin)
NewValue = (((OldValue - OldMin) * NewRange) / OldRange) NewMin
``
Wenn der alte Bereich eine Nullspanne hat (OldMin = OldMax), wird die Berechnung wie folgt geändert:
``
OldRange = (OldMax - OldMin)
if (OldRange == 0)
NewValue = NewMin
else
{
NewRange = (NewMax - NewMin) NewValue = (((OldValue - OldMin) * NewRange) / OldRange) + NewMin
}
``
In diesem Szenario , NewMin ist die Standardauswahl für den neuen Wert, aber auch andere Optionen wie NewMax oder ihr Durchschnitt könnten kontextbezogen geeignet sein.
Python-Implementierung:
``
def convert_range(old_value, old_min, old_max, new_min, new_max):
"""Konvertiert einen Wert von einem Bereich in einen anderen unter Beibehaltung des Verhältnisses."""
old_range = old_max - old_min
if old_range = = 0:
return new_min
new_range = new_max - new_min
return (((old_value - old_min) * new_range) / old_range) new_min
``
Das obige ist der detaillierte Inhalt vonWie konvertiert man Zahlenbereiche unter Beibehaltung der Verhältnisse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!