TovTovTov (une mutation de Poulet ): 810147050 octets
Vous trouverez ci-dessous deux solutions suggérées: une solution complète à la question nécessitant de nombreux octets et une seconde solution partielle (ne résolvant que les valeurs N + N et N * N). parties , ne nécessitant que 484 octets), chacune adoptant une approche différente et la sienne propre. ensemble d'astuces cool! :)
1. Solution complète (810147050 octets)
En utilisant TovTovTov(TOV='hi',SEP=','), les TOVéléments sont immunisés contre la duplication de caractères sur place (les deux "hihihi"et "hhiihhiihhii"ont trois "hi"s en eux, et tout ce qui TovTovTovimporte est le nombre de TOVs qui apparaissent entreSEP ).
Si nous l'utilisions SEP=', ', l'ensemble du programme serait à l'abri de la duplication de caractères (ce qui est cool, mais ne résoudra pas la question). Donc nous utilisonsSEP=',' .
Ainsi, le programme "hihihi,hi", par exemple, compile dans le tableau ints [3,1], pendant qu'il "hhiihhiihhii,,hhii"compile vers [3,0,1]et "hhiihhiihhii,,hhii"vers [3,0,0,1]. Cela signifie que les commandes elles-mêmes ne changent pas de signification après la duplication, mais que la longueur totale change avec la duplication de caractères. La solution ci-dessous demande la longueur du programme et l’utilise pour décider d’imprimer N+N, N*Nou deN^N .
La solution complète suggérée, en tant que tableau ints, est la suivante: [6, 12, 9, 18, 9, 142, 11, 38, 8, 9, 260, 11, 73, 8, 22, 75, 7, 10, 14, 3, 1, 22, 24, 18, 15, 8, 10, 16, 3, 1, 22, 24, 18, 15, 8, 10, 45, 16, 7, 22, 3, 1, 22, 24, 18, 15, 8, 22, 3, 1, 22, 24, 18, 15, 8, 25, 3, 1, 22, 24, 18, 15, 8, 48, 3, 1, 22, 24, 18, 15, 8, 277, 3, 1, 22, 24, 18, 15, 8, 3146, 3, 1, 22, 24, 18, 15, 8, 46677, 3, 1, 22, 24, 18, 15, 8, 823564, 3, 1, 22, 24, 18, 15, 8, 16777237, 3, 1, 22, 24, 18, 15, 8, 387420510, 3, 1, 22, 24, 18, 15, 8]
En tant que chaîne, il s'agit d'un programme assez long, composé de 810147050 caractères, commençant par:
hihihihihihi,hihihihihihihihihihihihi,hihihihihihihihihi,hihihihihihihihihihihihihihihihihihi,hihihihihihihihihi,hihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihih...
2. Résoudre uniquement les parties N + N et N * N de la question (484 octets)
En utilisant TovTovTov(TOV='1',SEP=', '), cette fois, les SEPs sont immunisés contre la duplication (il ",,  "n'en reste qu'une ", "), de sorte que la solution suggérée suivante contiendra toujours 33 commandes, même après la duplication de caractères:
1111, 111111111111111111111111111111111111111111111111, 1111111111, 1111111111, 1111111111, 111111, 111111111111, 111111111, 11111111111111, 111, 1, 1111111111111111111111, 111111111111111111111111, 111111111111111111, 111111111111111, 11111111, 111111111111, 1111111111111111, 111111111111111, 1111111111111111111111, 111111111111111111111111111111111111, 11, 1111111111111111111111111111, 111111, 111, 111111, 11111111111, 111111111111111111111111111, 1111, 1, 11111111, 1, 11111111
Le tableau ints correspondant (le nombre de TOVs (1 s) dans chacune des 33 commandes ci-dessus) est le suivant:[4,48,10,10,10,6,12,9,14,3,1,22,24,18,15,8,12,16,15,22,36,2,28,6,3,6,11,27,4,1,8,1,8]
La duplication des caractères sur place résulte en une liste de 33 commandes totalement différentes :
[8,96,20,20,20,12,24,18,28,6,2,44,48,36,30,16,24,32,30,44,72,4,56,12,6,12,22,54,8,2,16,2,16]
Le tableau ints original (qui calcule N + N ) a été conçu avec soin afin que , après les commandes changent de sens, le programme a encore un sens, mais calcule N * N . Par exemple, le premier 4(qui TovTovTovcomprend comme "traite l'opération suivante comme un code ascii à convertir en caractère") change après la duplication de caractère 8, ce qui est une commande totalement différente ("change le compteur de programme en la première valeur pile, si la valeur affichée immédiatement après est vraie ").