Merci Martin pour 6 octets!
1="/}.!+/M8;
Étendu:
1 = "
/ } . !
+ / M 8 ;
. . . .
. . .
Essayez-le en ligne
Vieux, réponds. Ceci est laissé car les images et l'explication pourraient être utiles aux nouveaux utilisateurs d'Hexagony.
!).={!/"*10;$.[+{]
Étendu:
! ) .
= { ! /
" * 1 0 ;
$ . [ +
{ ] .
Ceci affiche la séquence de Fibonacci séparée par des nouvelles lignes.
Essayez-le en ligne! Attention cependant, l'interprète en ligne n'aime pas vraiment les sorties infinies.
Explication
Il y a deux "sous-routines" à ce programme, chacune étant exécutée par l'un des deux IP utilisés. La première routine imprime les nouvelles lignes et la seconde effectue le calcul et la sortie de Fibonacci.
Le premier sous-programme commence sur la première ligne et se déplace de gauche à droite tout le temps. Il imprime d'abord la valeur au niveau du pointeur de la mémoire (initialisé à zéro), puis incrémente la valeur au niveau du pointeur de la mémoire 1
. Après l’interdiction d’opération, l’IP passe à la troisième ligne qui bascule d’abord dans une autre cellule mémoire, puis imprime une nouvelle ligne. Puisqu'une nouvelle ligne a une valeur positive (sa valeur est 10), le code passera toujours à la cinquième ligne, la suivante. La cinquième ligne renvoie le pointeur de la mémoire sur notre numéro Fibonacci, puis passe à l’autre sous-programme. Lorsque nous reviendrons de ce sous-programme, l’adresse IP reviendra à la troisième ligne, après avoir exécuté un no-op.
Le deuxième sous-programme commence dans le coin supérieur droit et commence à se déplacer vers le sud-est. Après un no-op, nous sommes obligés de voyager vers l'ouest le long de la deuxième ligne. Cette ligne imprime le numéro de Fibonacci actuel avant de déplacer le pointeur de la mémoire vers le prochain emplacement. Ensuite, l’IP saute à la quatrième ligne, où il calcule le numéro Fibonacci suivant en utilisant les deux précédents. Il redonne ensuite le contrôle au premier sous-programme, mais lorsqu'il reprend le contrôle du programme, il continue jusqu'à ce qu'il rencontre un saut, où il rebondit sur le miroir qui était utilisé à l'origine pour le diriger vers l'ouest, puis qu'il retourne à la deuxième ligne.
Jolies images préliminaires!
Le côté gauche de l'image est le programme, le côté droit représente la mémoire. La boîte bleue est la première adresse IP et les deux adresses IP pointent vers l'instruction suivante à exécuter.
Remarque: les images peuvent sembler attrayantes aux personnes ayant des compétences limitées similaires avec les programmes d'édition d'images: PI ajoutera au moins 2 itérations supplémentaires afin que l'utilisation de l' *
opérateur devienne plus claire.
Note 2: Je n’ai vu la réponse d’Alephalpha qu’après avoir écrit la majeure partie de ceci: j’ai pensé que c’était toujours utile en raison de la séparation, mais les parties Fibonacci de nos programmes sont très similaires. En outre, il s’agit du plus petit programme Hexagony que j’ai vu utiliser plus d’une adresse IP; j’ai donc pensé qu’il serait peut-être bon de le garder de toute façon: P
^2
à remplacer0,1
. +1