Desafío
Dado un número natural, imprímalo en la forma ASCII del sistema de números de Agrippa.
Descripción
Me gustan los alfabetos impares y los sistemas numéricos. Mi sistema numérico favorito es uno dado por Heinrich Cornelius Agrippa . Da una forma sucinta de escribir números en el rango [0,9999]
, donde los dígitos individuales se escriben de la siguiente manera:
Los números más grandes son menos que 10^4
una combinación de dígitos individuales, pero girado / reflejado horizontalmente en una sola barra central de la siguiente manera:
[0° mirrored, 10's ] | [0°, 1's ]
[180°, 1000's] | [180° mirrored, 100's]
Aquí están algunos ejemplos:
Los equivalentes ASCII son:
Ones:
0 1 2 3 4 5 6 7 8 9
| |- |_ |\ |/ |~ || |^ |v |]
| | | | | | | | | |
Tens:
0 1 2 3 4 5 6 7 8 9
| -| _| /| \| ~| || ^| v| [|
| | | | | | | | | |
Hundreds:
0 1 2 3 4 5 6 7 8 9
| | | | | | | | | |
| |_ |- |/ |\ |~ || |v |^ |]
Thousands:
0 1 2 3 4 5 6 7 8 9
| | | | | | | | | |
| _| -| \| /| ~| || v| ^| [|
1510: 1511: 1471: 1486: 3421:
-| -|- ^|- v|| _|-
_|~ _|~ _|\ -|\ \|\
Los números más grandes que 9999
se dividen en secciones de 4 dígitos (con ceros iniciales agregados para obtener un múltiplo de cuatro) y cada uno se convierte. Por ejemplo:
314159: (0031 4159)
/|- ~|]
| /|_
Reglas
- Su respuesta puede ser una función o un programa completo
- La entrada es un entero positivo.
- Las entradas deben admitir entradas sobre
10^8
- Cada sección de cuatro dígitos tiene exactamente seis caracteres
- Las secciones de cuatro están separadas por un solo espacio.
- La nueva línea final es opcional
- Se permiten hasta dos espacios finales por línea
- No aceptaré mi propia respuesta.
- La puntuación está en bytes, ¡gana la puntuación más baja!
code-golf
ascii-art
kolmogorov-complexity
Michael Klein
fuente
fuente
Respuestas:
Haskell, 310 bytes
reverse
(como lo hicer
:) es un byte más corto que importarData.List
y usarlo solo una vezz=0:z
y(!)=(!!).(++z)
es el camino más corto que he encontrado para volver0
fuera de límitestake4s
función, pero todavía me parece mágicoAquí está el código:
Menos golfizado:
Pruebas (caracteres de escape eliminados):
fuente
Javascript (ES6),
180159 bytesDonde
\n
representa un carácter de nueva línea literal.Editar: actualizado para el cambio de
,'
a|
. Ahorró 14 bytes usando un soloreplace
para hacer todo el trabajo. Guardado 3 bytes usando en&-4
lugar de<<2>>2
. Se guardaron 2 bytes al abusar de la asignación de desestructuración. Ahorró 2 bytes al abusar de las cadenas de plantillas.fuente