Wir alle kennen die Fibonacci-Sequenz :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765
Stattdessen nehmen f(n) = f(n-1) + f(n-2)
wir jedoch die digitale Summe der vorherigen 2 Einträge.
Die Sequenz sollte immer noch beginnen 0, 1
, danach werden die Unterschiede schnell sichtbar. Diese Liste ist 0-indiziert. Sie können auch 1-indiziert verwenden und angeben, welche Liste Sie verwendet haben.
f(0) = 0
f(1) = 1
f(2) = 1 # 0 + 1
f(3) = 2 # 1 + 1
f(4) = 3 # 1 + 2
f(5) = 5 # 2 + 3
f(6) = 8 # 3 + 5
f(7) = 13 # 8 + 5
f(8) = 12 # 8 + 1 + 3
f(9) = 7 # 1 + 3 + 1 + 2
f(10) = 10 # 1 + 2 + 7
f(11) = 8 # 7 + 1 + 0
f(12) = 9 # 1 + 0 + 8
f(13) = 17 # 8 + 9
f(14) = 17 # 9 + 1 + 7
f(15) = 16 # 1 + 7 + 1 + 7
f(16) = 15 # 1 + 7 + 1 + 6
f(17) = 13 # 1 + 6 + 1 + 5
f(18) = 10 # 1 + 5 + 1 + 3
f(19) = 5 # 1 + 3 + 1 + 0
f(20) = 6 # 1 + 0 + 5
f(21) = 11 # 5 + 6
f(22) = 8 # 6 + 1 + 1
f(23) = 10 # 1 + 1 + 8
f(24) = 9 # 8 + 1 + 0
f(25) = 10 # 1 + 0 + 9
f(26) = 10 # 9 + 1 + 0
f(27) = 2 # 1 + 0 + 1 + 0
(After this point it repeats at the 3rd term, 0-indexed)
Hinweis: Ich habe die Wiederholung erst bemerkt, als ich die Herausforderung selbst veröffentlicht habe, und hier dachte ich, es wäre unmöglich, eine weitere neuartige Fibonacci-Herausforderung zu schreiben.
Ihre Aufgabe ist es, unter Angabe einer Nummer n
die n-te Stelle dieser Sequenz auszugeben.
Die ersten 3 Ziffern: [0,1,1]
,
24-stelliges wiederholtes Muster: [2,3,5,8,13,12,7,10,8,9,17,17,16,15,13,10,5,6,11,8,10,9,10,10]
Tipp: Möglicherweise können Sie diese Wiederholung zu Ihrem Vorteil ausnutzen.
Dies ist Code-Golf , die niedrigste Byte-Anzahl ist der Gewinner.
BONUS: Wenn Sie in Ihrer Antwort die Wiederholung verwenden, erteile ich der Antwort mit der niedrigsten Byteanzahl, die die Wiederholung in der Sequenz nutzt, eine Prämie von 100 Punkten. Dies sollte als Teil Ihrer ursprünglichen Antwort nach Ihrer ursprünglichen Antwort eingereicht werden. Sehen Sie sich diesen Beitrag als Beispiel für das an, worüber ich spreche: https://codegolf.stackexchange.com/a/108972/59376
Um sich für diesen Bonus zu qualifizieren, muss Ihr Code in konstanter Zeit ( O(1)
) mit einer Erklärung ausgeführt werden.
Bonussieger: Dennis https://codegolf.stackexchange.com/a/108967/59376 <Dennis hat gewonnen.
Einzigartigste Implementierung: https://codegolf.stackexchange.com/a/108970/59376
(Erhält auch 100 Punkte, finalisiert nach Auswahl der richtigen Antwort)
%24
eine "normale" Lösung hinzu?
O(1)
. Ihr Code sollte in konstanter Zeit ausgeführt werden, wenn die Wiederholung wirklich ausgenutzt wird.