7 , 10 bytes, 27 caracteres
115160723426754314105574033
Pruébalo en línea!
La representación empaquetada de este programa en el disco es ( xxd
formato):
00000000: 269c 3a71 6f63 308b 7c0d &.:qoc0.|.
Explicación
Hemos visto esta secuencia de números antes, en Automate Saving the World , que consistía en imprimir los números a intervalos regulares, haciéndolo interesante al requerir el uso de un lenguaje muy antiguo. Sin embargo, muchos idiomas más nuevos pueden tener sus propios giros que hacen que este desafío sea interesante. (Sí, este párrafo, y de hecho la razón por la que comencé a escribir esta respuesta, es efectivamente solo una forma de mostrar todos los desafíos relacionados en la barra lateral; normalmente las personas lo hacen usando comentarios, pero no tengo suficiente representante .)
Lo primero que debe tener en cuenta es que 7 está hecho completamente de dígitos, por lo que es poco probable que las bonificaciones funcionen aquí (aunque si ve el programa como una secuencia de octetos, ninguno de ellos corresponde a representaciones ASCII de ninguno de los números originales , para que puedas reclamar la bonificación en ese sentido). Lo siguiente a tener en cuenta es que 7 tiene comandos para recrear la secuencia de comandos que probablemente haya producido una pieza específica de datos; Entonces, ¿podríamos interpretar los números perdidos 4815162342
como una sección de un programa 7 en sí?
La respuesta es "no del todo". La parte más problemática es ese segundo número 8
,. 7 programas están escritos en octal; no hay un número como 8. Por lo tanto, el comienzo de la cadena tendrá que imprimirse de manera diferente.
Por lo tanto, la base del programa se basa en el programa 7 "Hola mundo":
5431410557403
543141055 string literal
7 separate data from code
4 rearrange stack: {program's source}, empty element, {literal}
0 escape {the literal}, appending it to {the empty element}
3 output {the escaped literal}, pop {the program's source}
con el literal escapado en un lenguaje de dominio específico que se interpreta de la siguiente manera:
5 output format: US-TTY using pairs of digits in the string
43 select character set: digits and common symbols
14 "4"
10 "8"
55 forget the set output format
Después de esto viene un extra 3
, que genera el elemento de pila restante (y sale debido a la pila restante insuficiente). Ese elemento se especifica al inicio del programa, y para evitar lo inigualable 6
(que funciona un poco como un corchete de cierre), lo generamos usando código, en lugar de escribirlo directamente como datos. (Tenga en cuenta que hay dos 7
caracteres implícitos al inicio del programa, que es relevante aquí):
{77}115160723426
7 empty stack element
7 11516 append "1151"
0 append "6"
723246 append "2324"
Eso produce el siguiente literal:
115162324
1 set output format: literally as octal
15162324 "15162324"
que se imprime