TovTovTov (una mutación de pollo ): 810147050 bytes
A continuación se describen dos soluciones sugeridas: una solución completa a la pregunta que requiere muchos bytes y una segunda solución parcial (que resuelve solo las partes N + N y N * N , que requieren solo 484 bytes), cada una con un enfoque diferente y su propio conjunto de trucos geniales! :)
1. Solución completa (810147050 bytes)
Usando TovTovTov(TOV='hi',SEP=','), los TOVelementos son inmunes a la duplicación de caracteres en su lugar (ambos "hihihi"y "hhiihhiihhii"tienen tres "hi"s en ellos, y lo único que TovTovTovimporta es cuántos TOVs aparecen entre SEPs).
Si lo usáramos SEP=', ', todo el programa sería inmune a la duplicación de caracteres (lo cual es genial, pero no resolverá la pregunta). Entonces lo usamos SEP=','.
Entonces, el programa "hihihi,hi", por ejemplo, compila a la matriz de ints [3,1], mientras que "hhiihhiihhii,,hhii"compila a [3,0,1]y "hhiihhiihhii,,hhii"hacia [3,0,0,1]. Esto significa que los comandos en sí mismos no cambian su significado después de la duplicación, pero la longitud total cambia con la duplicación de caracteres. La solución a continuación consulta la duración del programa y la utiliza para decidir si se debe imprimir N+N, N*No N^N.
La solución completa sugerida, como matriz de ints, es: [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]
Como una cadena, es un programa bastante largo, que consta de 810147050 caracteres, comenzando con:
hihihihihihi,hihihihihihihihihihihihi,hihihihihihihihihi,hihihihihihihihihihihihihihihihihihi,hihihihihihihihihi,hihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihih...
2. Resolver solo las partes N + N y N * N de la pregunta (484 bytes)
Utilizando TovTovTov(TOV='1',SEP=', '), esta vez los SEPs son inmunes a la duplicación ( ",, "todavía tiene solo uno ", "), por lo que la siguiente solución sugerida siempre tendrá 33 comandos, incluso después de la duplicación de caracteres:
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
La matriz de ints correspondiente (el número de TOVs ( 1s) en cada uno de los 33 comandos anteriores) es la siguiente:[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]
Duplicar los caracteres en el lugar da como resultado una lista de 33 comandos totalmente diferentes :
[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]
La matriz de enteros originales (que calcula N + N ) fue diseñado cuidadosamente para que después de los comandos cambian su significado, el programa todavía tiene sentido, pero calcula N * N . Por ejemplo, el primero 4(que se TovTovToventiende como "tratar la siguiente operación como un código ASCII para convertir a un carácter") cambia después de la duplicación de caracteres 8, que es un comando totalmente diferente ("cambiar el contador del programa al primer valor emergente del pila, si el valor aparecido inmediatamente después es verdadero ").