Ich versuche, eine winzige (oder vielleicht nicht so winzige) Formel zu erstellen, die Zahlen zwischen einer Min- und Max-Zahl enthält, aber auch diese Zahlen, damit sie nicht abgeschnitten werden, wenn sie außerhalb des Bereichs liegen. Soweit habe ich das.
%Vor%aber ich möchte, dass es auch die andere Richtung koppelt, so dass, wenn val1 5 ist, was -5 außerhalb von min1 ist, es 86 wird.
Ein anderes Problem, in das ich hineingeraten bin, ist das
%Vor%wie ich es will, da das max Teil des Bereichs
istversuchen, klar zu sein, hier sind einige Beispiele für die gewünschte Ausgabe basierend auf einem Bereich mit Schleifen
%Vor%Ich möchte nicht auf eine Reihe von if / else-Anweisungen zurückgreifen, aber eine wäre in Ordnung, wenn es absolut erforderlich ist. Ist das überhaupt möglich?
Mathematisch sollten Sie in der Lage sein, Folgendes zu tun:
%Vor%Bewegen Sie Ihren Bereich nach unten, um auf Null zu setzen, schneiden Sie das obere Ende ab und schieben Sie es zurück in den richtigen Bereich. Leider gibt der Operator% in C negative Ergebnisse für negative Zahlen. Also:
%Vor%Um diese Negative loszuwerden, brauchen wir einen zusätzlichen Modulo:
%Vor%Entschuldigung. Gelöschte vorherige Antwort. Versuchen Sie Folgendes:
((val-min)% (max-min) + max-min)% (max-min) + min
BEARBEITEN: Wenn Sie möchten, dass max ein gültiger Wert ist, anstatt zu min zu überlaufen, ersetzen Sie max an allen 3 Stellen durch max + 1.