Ich versuche, eine Funktion zu schreiben, die die Frage beantwortet: Wenn Sie bei a
Zählen starten und stoppen bei b
zu zählen, ist c
in diesem Bereich (aka c
zwischen a
und b
).Algorithmus zu bestimmen, ob Zahl zwischen zwei Zahlen in der modularen Arithmetik ist
Normalerweise a < c && c < b
würde genügen, aber ich bin in der modularen Arithmetik:
gegen den Uhrzeigersinn zunimmt.
Grün Farben: Werte für c sind, wo der Algorithmus wahr zeigen sollte (wobei c zwischen a und b)
Blauen Farben: sind Werte für c, wo der Algorithmus sollte falsch angeben (wobei c nicht zwischen a und b) (was passiert, die gleiche sein, wie wobei c zwischen b und einem)
die einfachen a < c && c < b
ausfällt, wo der Bereich von a
und b
kreuzen 0.
Angenommen, A = 300 und B = 45. Wenn C ist 10, dann sollte die Funktion wahr werden: , 301, 302 ... 359, 0, 1, 2, 3 ... 8, 9, , 11, 12 ... 43, 44, . Daher ist 10 zwischen 300 und 45 in Mod 360.
Letztlich, was ich versuche zu bestimmen ist, wenn ein Farbton zwischen zwei anderen Farbtönen ist, wo Farbtöne in Grad um ein Farbrad (das ist ein Mod 360 System). Es wäre großartig, wenn die Antwort in Form von Mod wäre, also würde es den allgemeinen Fall lösen und nicht spezifisch für mein Problem sein.
ich dort denken sind drei Fälle: a≤x≤b OR b≤a≤x OR x≤b≤a (vorausgesetzt, die Zahlen in kanonischer Form 0 ≤ a sind, b , x