Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behalte ich das Verhältnis zwischen Werten bei der Konvertierung von Zahlenbereichen bei?

Wie behalte ich das Verhältnis zwischen Werten bei der Konvertierung von Zahlenbereichen bei?

Linda Hamilton
Linda HamiltonOriginal
2024-11-07 11:39:03310Durchsuche

How do I preserve the ratio between values when converting number ranges?

Beim Konvertieren von Zahlenbereichen bleibt das Verhältnis erhalten

Im Bereich der Datenmanipulation besteht häufig die Notwendigkeit, Werte von einem Bereich in einen anderen umzurechnen Beibehaltung ihrer relativen Verhältnisse. Dies kann besonders nützlich sein, wenn Sie Daten komprimieren oder Werte zwischen verschiedenen Maßstäben abbilden.

Betrachten wir die Aufgabe, einen Wertebereich von -16000,00 bis 16000,00 in einen besser verwaltbaren Ganzzahlbereich von 0-100 umzuwandeln. Wir möchten sicherstellen, dass bei der Umrechnung das Verhältnis zwischen den ursprünglichen Werten erhalten bleibt.

Der Schlüssel zum Erreichen dieser Verhältniserhaltung liegt in der folgenden Formel:

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

wobei:

  • OldValue ist der ursprüngliche Wert innerhalb des alten Bereichs
  • OldMin und OldMax sind die Minimal- und Maximalwerte des alten Bereichs
  • NewMax und NewMin sind die Maximal- und Minimalwerte des neuen Bereich

Um es weiter aufzuschlüsseln:

  • Wir berechnen das normalisierte Verhältnis des OldValue innerhalb des alten Bereichs: (OldValue - OldMin) / (OldMax - OldMin)
  • Wir multiplizieren dieses Verhältnis mit der Größe des neuen Bereichs: (NewMax - NewMin)
  • Wir verschieben dieses Ergebnis um das Minimum des neuen Bereichs: NewMin

Diese Formel stellt sicher, dass das Verhältnis zwischen Werten innerhalb des alten Bereichs innerhalb des neuen Bereichs erhalten bleibt.

Wenn beispielsweise OldValue 8000,00 ist, ist OldMin -16000,00, OldMax ist 16000,00, NewMax ist 100 und NewMin ist 0 , NewValue würde wie folgt berechnet:

NewValue = (((8000.00 - (-16000.00)) * (100 - 0)) / (16000.00 - (-16000.00))) + 0
= (((24000.00) * (100)) / (32000.00)) + 0
= 75.00

Somit entsprechen 8000,00 im alten Bereich 75,00 im neuen Bereich, wobei das relative Verhältnis zwischen diesen Werten erhalten bleibt. Diese Formel kann weiter angepasst werden, um Fälle zu behandeln, in denen der alte Bereich Null ist oder der gewünschte neue Bereich nicht bei Null beginnt.

Das obige ist der detaillierte Inhalt vonWie behalte ich das Verhältnis zwischen Werten bei der Konvertierung von Zahlenbereichen bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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