Zunächst einmal beachten Sie, dass mein Englisch hier nicht das beste ist. Wenn jemand daran interessiert ist, mir bei der Lösung dieses Problems zu helfen und etwas besser zu erklären, zögern Sie nicht, weitere Details anzufordern.
Eine spezifische Lösung in einer beliebigen gegebenen Sprache mit Tags wird sehr geschätzt. Auch wenn eine allgemeinere Lösung in Form einer Formel das Ziel dieser Frage ist.
Danke
Sequenzregel SR definieren, eine feste Sequenz ganzer Zahlen:
SR = (a, b, c, d, ..)
Beispiel
SR = (1, 2, 3, 5)
Verschiebungssequenzregel SS definieren, die aus SR abgeleitete Sequenz lautet:
SS = (a-0, b-a, c-b, d-c,..-d)
Beispiel
(1-0, 2-1, 3-2, 5-3) = (1, 1, 1, 2)
Die Verschiebungssequenzregel SS sollte gemäß der folgenden rekursiven Formel eine Ausgangssequenz OS berechnen:
OS(n) = 0, n=0
OS(n) = OS(n-1) + SS(i), n>0
wobei i die Position von n in der aktuellen Untergruppe SS ist.
Beispiel
OS(n) = (1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15..)
wobei n=(1,2,3,4,5,6,7,8,9,10,11,12,..)
.
OS(0) = 0
OS(1) = OS(0) + SS(1) = 0 + 1 = 1
OS(2) = OS(1) + SS(2) = 1 + 1 = 2
OS(3) = OS(2) + SS(3) = 2 + 1 = 3
OS(4) = OS(3) + SS(4) = 3 + 2 = 5
OS(5) = OS(4) + SS(1) = 5 + 1 = 6
OS(6) = OS(5) + SS(2) = 6 + 1 = 7
OS(7) = OS(6) + SS(3) = 7 + 1 = 8
OS(8) = OS(7) + SS(4) = 8 + 2 = 10
OS(9) = OS(8) + SS(1) = 10 + 1 = 11
OS(10) = OS(9) + SS(2) = 11 + 1 = 12
OS(11) = OS(10) + SS(3) = 12 + 1 = 13
OS(12) = OS(11) + SS(4) = 13 + 2 = 15
Was mir tatsächlich fehlt (nicht bekomme), ist die aktuelle Position von n
in der zugehörigen Verschiebungsgruppe, gegeben n
allein, sodass:
pos(n)=i -> S(pos(n)) = S(i)
daher kann ich abschließend schreiben
OS(0) = 0
OS(n) = OS(n-1) + SS(pos(n))
Was ich bisher herausgefunden habe, ist eine Formel für den aktuellen Index der Verschiebungsgruppe. Ich vermute, dass es mir helfen kann, die gewünschte Positionsformel pos(n) zu bestimmen, weiß aber nicht wie :((
Der Gruppenindex kann als folgt ausgedrückt werden:
G(n)=ceiling(n/D(SS))
Wobei D(SS) die Dimension von SS ist, also die Anzahl der Elemente in der Sequenzregel.
Beispiel
Zum Beispiel erstreckt sich die Sequenz $n$ von 1 bis 12. Die Anzahl der Verschiebungsgruppen (1,1,1,2)
mit Dimension 4, die eine 1->1 Zuordnung zu OS(n) herstellen, beträgt 3 = 12/4
.
Der Gruppierungsindex für n=9
kann berechnet werden als:
G(9) = ceiling(n/D(SR)) = ceiling(9/4) = 3
ENDGÜLTIGE ANTWORT
Die Verwendung des %
-Operators ist das, was mir gefehlt hat. Die endgültige rekursive Formel lautet:
OS(n) = 0, n=0
OS(n) = OS(n-1) + SS((n + D(SR)-1) % D(SR) + 1), n>0
Oder unter Verwendung einer rein mathematischen Formel (und der obigen Definition des Gruppenindex):
OS(n) = 0, n=0
OS(n) = OS(n-1) + SS((n + D(SR)-1 - (D(SR) * G(n)) + 1), n>0
DANKE @GARETH