Nous connaissons tous la séquence de Fibonacci :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765
Cependant, au lieu de, f(n) = f(n-1) + f(n-2)
nous prendrons la somme numérique des 2 entrées précédentes.
La séquence doit toujours commencer 0, 1
, après quoi les différences sont rapidement apparentes. Cette liste est indexée 0, vous pouvez également utiliser l'index 1, indiquez celle que vous avez utilisée.
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)
Remarque: je n'ai pas remarqué la répétition jusqu'à ce que j'aie posté le défi lui-même, et ici je pensais qu'il serait impossible d'écrire un autre défi Fibonacci.
Votre tâche consiste, en fonction d'un nombre n
, à sortir le nième chiffre de cette séquence.
Les 3 premiers chiffres: [0,1,1]
,
Motif répété à 24 chiffres: [2,3,5,8,13,12,7,10,8,9,17,17,16,15,13,10,5,6,11,8,10,9,10,10]
Astuce: Vous pourrez peut-être exploiter cette répétition à votre avantage.
C'est le golf de code , le nombre d'octets le plus bas est le gagnant.
BONUS: Si vous utilisez la répétition dans votre réponse, je vais attribuer à la réponse de décompte d'octets la plus basse qui profite de la répétition dans la séquence une prime de 100 points. Cela devrait être soumis dans le cadre de votre réponse d'origine, après votre réponse d'origine. Voir cet article comme un exemple de ce dont je parle: https://codegolf.stackexchange.com/a/108972/59376
Pour bénéficier de ce bonus, votre code doit être exécuté en temps constant ( O(1)
) avec une explication.
Gagnant du bonus: Dennis https://codegolf.stackexchange.com/a/108967/59376 <Dennis a gagné.
Implémentation la plus unique: https://codegolf.stackexchange.com/a/108970/59376
(recevra également 100 points, finalisés après avoir choisi la bonne réponse)
%24
à une solution "normale"?
O(1)
. Votre code doit être exécuté en temps constant, s'il exploite vraiment la répétition.