Wie konvertiert man Zahlenbereiche unter Beibehaltung der Verhältnisse?

Barbara Streisand
Freigeben: 2024-11-07 21:17:02
Original
933 Leute haben es durchsucht

How to Convert Number Ranges While Preserving Ratios?

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
Nach dem Login kopieren

else
{

NewRange = (NewMax - NewMin)
NewValue = (((OldValue - OldMin) * NewRange) / OldRange) + NewMin
Nach dem Login kopieren

}
``

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage