Su desafío es imprimir / imprimir / devolver este texto:
_____ _____
| 1 | | 2 |
| H | | He |
|_____|_____ _____________________________|_____|
| 3 | 4 | | 5 | 6 | 7 | 8 | 9 | 10 |
| Li | Be | | B | C | N | O | F | Ne |
|_____|_____| |_____|_____|_____|_____|_____|_____|
| 11 | 12 | | 13 | 14 | 15 | 16 | 17 | 18 |
| Na | Mg | | Al | Si | P | S | Cl | Ar |
|_____|_____|___________________________________________________________|_____|_____|_____|_____|_____|_____|
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
| K | Ca | Sc | Ti | V | Cr | Mn | Fe | Co | Ni | Cu | Zn | Ga | Ge | As | Se | Br | Kr |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
| 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 |
| Rb | Sr | Y | Zr | Nb | Mo | Tc | Ru | Rh | Pd | Ag | Cd | In | Sn | Sb | Te | I | Xe |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
| 55 | 56 | 57 \ 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 |
| Cs | Ba | La / Hf | Ta | W | Re | Os | Ir | Pt | Au | Hg | Tl | Pb | Bi | Po | At | Rn |
|_____|_____|_____\_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
| 87 | 88 | 89 / 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 |
| Fr | Ra | Ac \ Rf | Db | Sg | Bh | Hs | Mt | Ds | Rg | Cn | Nh | Fl | Mc | Lv | Ts | Og |
|_____|_____|_____/_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
____________________________________________________________________________________
\ 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 \
/ Ce | Pr | Nd | Pm | Sm | Eu | Gd | Tb | Dy | Ho | Er | Tm | Yb | Lu /
\_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____\
/ 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 /
\ Th | Pa | U | Np | Pu | Am | Cm | Bk | Cf | Es | Fm | Md | No | Lr \
/_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____/
Reglas:
- El recuento de líneas vacías entre las dos partes puede ser cualquier cantidad (incluido 0)
- Cada línea puede tener espacios previos y anexos siempre que las dos partes se vean correctamente y la segunda parte tenga sangría al menos un espacio más que la primera.
- Es posible que tenga nuevas líneas y / o espacios anexos / anexos.
- No puede usar pestañas para el espaciado (siempre que no haya un intérprete que las reemplace correctamente con espacios).
- Debido a un error mío, puedes elegir usarlo
______ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____
como la primera línea de la segunda parte.
Datos:
puede usar este texto como referencia (pero no como entrada):
Contenido: símbolo, número atómico, grupo, grupos de períodos 8 y 9 y los períodos 4-17 se utilizan para la segunda parte.
H 1 1 1
He 2 18 1
Li 3 1 2
Be 4 2 2
B 5 13 2
C 6 14 2
N 7 15 2
O 8 16 2
F 9 17 2
Ne 10 18 2
Na 11 1 3
Mg 12 2 3
Al 13 13 3
Si 14 14 3
P 15 15 3
S 16 16 3
Cl 17 17 3
Ar 18 18 3
K 19 1 4
Ca 20 2 4
Sc 21 3 4
Ti 22 4 4
V 23 5 4
Cr 24 6 4
Mn 25 7 4
Fe 26 8 4
Co 27 9 4
Ni 28 10 4
Cu 29 11 4
Zn 30 12 4
Ga 31 13 4
Ge 32 14 4
As 33 15 4
Se 34 16 4
Br 35 17 4
Kr 36 18 4
Rb 37 1 5
Sr 38 2 5
Y 39 3 5
Zr 40 4 5
Nb 41 5 5
Mo 42 6 5
Tc 43 7 5
Ru 44 8 5
Rh 45 9 5
Pd 46 10 5
Ag 47 11 5
Cd 48 12 5
In 49 13 5
Sn 50 14 5
Sb 51 15 5
Te 52 16 5
I 53 17 5
Xe 54 18 5
Cs 55 1 6
Ba 56 2 6
La 57 3 6
Hf 72 4 6
Ta 73 5 6
W 74 6 6
Re 75 7 6
Os 76 8 6
Ir 77 9 6
Pt 78 10 6
Au 79 11 6
Hg 80 12 6
Tl 81 13 6
Pb 82 14 6
Bi 83 15 6
Po 84 16 6
At 85 17 6
Rn 86 18 6
Fr 87 1 7
Ra 88 2 7
Ac 89 3 7
Rf 104 4 7
Db 105 5 7
Sg 106 6 7
Bh 107 7 7
Hs 108 8 7
Mt 109 9 7
Ds 110 10 7
Rg 111 11 7
Cn 112 12 7
Nh 113 13 7
Fl 114 14 7
Mc 115 15 7
Lv 116 16 7
Ts 117 17 7
Og 118 18 7
Ce 58 4 8
Pr 59 5 8
Nd 60 6 8
Pm 61 7 8
Sm 62 8 8
Eu 63 9 8
Gd 64 10 8
Tb 65 11 8
Dy 66 12 8
Ho 67 13 8
Er 68 14 8
Tm 69 15 8
Yb 70 16 8
Lu 71 17 8
Th 90 4 9
Pa 91 5 9
U 92 6 9
Np 93 7 9
Pu 94 8 9
Am 95 9 9
Cm 96 10 9
Bk 97 11 9
Cf 98 12 9
Es 99 13 9
Fm 100 14 9
Md 101 15 9
No 102 16 9
Lr 103 17 9
Los elementos integrados que brindan información sobre la tabla periódica de elementos están permitidos, pero deben verse por separado de las soluciones no integradas.
¡El código más corto por idioma gana!
code-golf
kolmogorov-complexity
dzaima
fuente
fuente
Respuestas:
Chicle , 535 bytes
Utiliza compresión LZMA.
Pruébalo en línea!
fuente
Excel VBA,
1,0231,020990983975595495 Bytessub
Rutina completa que no toma entrada y saca la tabla periódica al rango[A1:R10]
delActiveSheet
objeto. Tenga en cuenta que debido a que Excel no puede implementar garabatos en los bordes, (hasta donde yo sé) esta implementación utiliza un borde rojo de color para indicar las series de lantánidos y actínidos.-3 bytes para espacios en blanco
-30 bytes para cambiar
Range("A1:R10")
a[A1:R10]
, eliminar espacios en blanco de todas lasa "some stuff"
llamadas y cambiar el delimitador de","
a" "
-7 bytes para cambiar
Range("D6:D7,D9:D10,R9:R10")
a[D6:D7,D9:D10,R9:R10]
-8 bytes para cambiar de direcciones de celda de cadena a
[...]
referencias de celda envueltas-380 Bytes gracias a @Alexander (eliminó la numeración de los datos y usó un bucle for en su lugar)
-100 bytes para convertir la matriz
String
y usar laMid
funciónSalida
fuente
D6:D7
yD9:D10
JavaScript (ES6),
756750 bytesExplicación:
a
contiene los lantánidos y actínidos (formateados)j
se usa para rastrear qué personaje se usa para dibujar el zigzag de los lantánidos y los actínidosi
es simplemente el número del siguiente elemento a formatear. Aunque no es estrictamente necesario formatear los elementos en orden, creo que se ahorra un pequeño byte al hacerlo.r
es una función de decodificación de longitud de ejecución. Espera ser llamado usando un parámetro de cadena de plantilla. Cualquier número en la cadena hace que el carácter anterior se repita tantas veces, por ejemplo,r`_5`
es el mismo que`_____`
(pero 2 bytes más corto, por supuesto). Originalmente tenía una versión más sofisticada que podía manejar,r`${i<100} `+i+r`${i++<10} `
pero resultó ser más corta para mantenerla como un caso especial.f
es una función de formateo de elementos. Se espera que se llame utilizando un parámetro de cadena de plantilla que contiene los elementos como pares de caracteres (espacio rellenado para nombres de elementos de un solo carácter). Se devuelve una matriz de tres cadenas, una para los números de elementos, otra para los nombres de los elementos y otra para los subrayados. Si se formatea más de un elemento, se unen con un|
separador.g
Es una función de pegamento. Espera ser llamado con tres matrices (el segundo y el tercer parámetro pueden ser cadenas si solo se necesita un carácter) y devuelve una matriz única con todas las cadenas correspondientes concatenadas juntas.Las primeras tres filas de elementos se manejan pegando los elementos formateados de cada lado con una cantidad adecuada de espacio. Las filas cuarta y quinta no necesitan pegamento. Las filas sexta y séptima se manejan pegando los elementos formateados de cada lado con el zigzag apropiado. Las 21 filas se unen con
|
bordes y líneas nuevas. Mientras tanto, las 6 filas de lantánidos y actínidos reciben su relleno y zigzag y se unen con líneas nuevas. Finalmente, las piezas se concatenan con los elementos de formato restantes necesarios. Editar: guardé 6 bytes porque olvidé sustituir las nuevas líneas literales después de desarrollar el código.Si una tabla completa con lantánidos y actínidos in situ es aceptable, entonces para 556 bytes:
Explicación: Una cadena contiene la lista de elementos con una
-
nueva línea agregada como elementos de formato. Se utilizan varios reemplazos para transformar la lista de elementos en la tabla deseada.|
s.|
se eliminan.-
Los s se reemplazan con suficiente relleno para generar un ancho de 193 caracteres._
s._
coloca encima de él (si aún no los tiene)_
s separados por espacios se unen con_
s.Probablemente podría guardar algunos bytes más usando los métodos padStart y padEnd ampliamente disponibles.
fuente
19_84 ``+a.map(s=>r`` 18
a18_84 ``+a.map(s=>r`` 17
. No afecta la longitud del código.Rubí, 567
Acercó la serie La / Ac a la tabla principal (la lectura de las reglas sugiere que está permitido; la sección de formato reorganizada
d
se usa inmediatamente cuando se calcula; y la siguiente fila se calcula matemáticamente en lugar de por expresiones regulares.Rubí, 587
la puntuación excluye 3 nuevas líneas innecesarias agregadas para mayor claridad
Explicación
La idea es producir lo siguiente, luego modificarlo agregando el relleno y el formato correctos, y moviendo los lantánidos y los actínidos al fondo.
Código comentado
fuente
a[r+15][18]=a[r+15][102]='\//'[r%2];a[r+23]=' '*18+a[r+15][18,85];a[r+15][18,84]=''
ahorro de 83 bytes, y posiblemente,a[22]=' '*18+?_*84
por otro lado, tendría que poner un espacio en las filas 4 y 5 sobre las tierras raras para que hubiera un código adicional para eso. Es difícil decir cuál sería el puntaje sin hacerlo, pero sería más corto.C,
141514011395136713451277115910521043 bytes¡Gracias a @Conor O'Brien por guardar 6 bytes!
¡Gracias a @ Zacharý por guardar
2290 bytes!¡Gracias a @gastropner por guardar
118225 bytes!¡Gracias a @ceilingcat por guardar
89 bytes!Pruébalo en línea!
Desenrollado (versión de 1159 bytes):
fuente
printf(
ocurrencias, aquí hay un enlace a su código con esas tres ocurrencias reemplazadas por laP
macro: repl.it/Jeat/1#define
-ing;L;B
: repl.it/Jeat/305AB1E ,
517500494459458 bytesPruébalo en línea!
-10ish gracias a Emigna
Deja escapar un alarido de victoria gutural ... Jugará más golf, pero como sigue siendo el más corto ...
La idea basica
Mapeé cada uno de los cuadrados con el primer dígito como la longitud del número y el segundo dígito como la longitud del nombre del elemento. Usé esto para crear el esqueleto (si existiera
.C
y.B
no existiera, sería fácilmente 300-400 bytes):Esto es lo que logra la primera mitad del código ...
05AB1E , 229 bytes
Pruébalo en línea!
A través de una manipulación fea y única y otras tonterías que no deberían existir, me las arreglo para armar todo el esqueleto.
La siguiente parte es básicamente "insertar la cadena masiva de letras y números que representan los elementos". Esencialmente solo comprimí, secuencialmente, todas las letras:
Llegar:
Luego me ves iterar reemplazando todos los símbolos @ con la letra apropiada (al final, después de colocarlos a todos en sus posiciones apropiadas, me permite usar "Título en mayúscula" para las mayúsculas, ya que cada elemento está separado por espacios en blanco).
Luego hago la cadena numérica y hago lo mismo (gracias Emigna):
Resultados en:
Que luego itero y reemplazo cada # con.
Después de esto, la molestia final fueron los cortes ... Dios mío ...
Esta monstruosidad de 50 bytes es lo que quiero arreglar, junto con muchas otras cosas pequeñas ... Así que continuaré jugando al golf, y hasta que arregle las cosas que quiero, esta será la explicación informal.
fuente
0 36
a¾36
.104 118Ÿ
aƵ3ƵHŸ
.90 103Ÿ
a90Ƶ2Ÿ
.žn•2ƒj#GÂjηCóÛƒüq™ôD ‡yΣ›aÎý1õçñ}ÂćÕ%…7¬vù~GÈž£_DвÌi¸7âòÜë8{~å≠’ˆ—d*^ݬ©Úì#Ï»cDYyÍæηмm¾/5ä):Ω8+“j¼[)ÿ—θ7I₆н¦ʒâÒ₂иofÞIa¥©ÂÛé/VÖt[¼m¦mćó,≠+ŒtC?8@Ú¬¼½k]αεßÁ'‡≠=aÔºø•51вè
.57L72 89Ÿ«Ƶ3ƵHŸ«58 71Ÿ«90Ƶ2Ÿ«J
PowerShell , 1562 bytes
Este enfoque no es óptimo. No se puede usar tio ya que esto aprovecha
[console]::setcursorposition
.fuente
SOGL V0.11 , 311 bytes (no competitivos)
Esto tomó un tiempo. Para hacer esto tan compacto, con el costo de una respuesta no competitiva, he implementado muchas cosas en SOGL (la mayoría de las cuales ya estaban documentadas). En particular,
- "ž", que coloca una matriz dentro de otra matriz en coordenadas específicas, y
- "►" y "◄" - codificación y decodificación de longitud de ejecución. Realmente pensé que los había documentado, pero supongo que no.
Pruébalo aquí! (compresión (perezosamente) actualizada para cumplir con 0.12)
Entonces, una explicación demasiado larga por delante:
Primera parte: configuración
Segunda parte: bucle
Así que ahora la salida se parece a esto .
Tercera parte: complementos
fuente
Bash, 728 bytes
Probado en Ubuntu , requiere base64 y xz programas
Explicación
LZMA (Algoritmo de cadena Lempel-Ziv-Markov) produjo aproximadamente 0,5K de archivo con tabla periódica.
Contiene símbolos no imprimibles y no se puede usar directamente en la consola. Para usarlo lo codifiqué por Base64
La redirección de flujo se utiliza para decodificar y descomprimir el archivo.
Trucos
Para ahorrar unos 30 bytes, eliminé la nueva línea y algunos espacios
fuente
base64 -D<<Q|xz -d
seguido del código base64 en su propia línea y una Q final).Excel VBA +,
674296293 bytes (Definitivamente trampa)Demasiado divertido de una solución novedosa para no compartir.
Rompe esta escapatoria estándar
Sub
rutina que no toma entrada y saca la tabla periódica a laactivesheet
objeto; Codificado para trabajar con 118 elementosEsta tabla periódica incluye
Código
Salida
Versión antigua, 674 bytes
Salida
fuente
Chicle , 600 bytes
Pruébalo en línea!
Puedes revertir este hexdump con
xxd -r
.Este es el resultado de Zopfliing el texto 747 veces en formato DEFLATE.
fuente
PHP, 758 bytes
Después de muy pocas posibilidades de jugar golf en mi enfoque de matriz, decido trabajar solo con cuerdas
Versión en línea
Expandido
PHP, 892 bytes
Primera solución de trabajo que está bajo el recuento de bytes de la versión de compresión, una solución con matrices
Versión en línea
PHP, 783 bytes
Pruébalo en línea!
Solo usando compresión
PHP, 948 bytes
fuente
GW-Basic, 598 bytes (archivo tokenizado)
Desafortunadamente, el modo de texto de GW-Basic está limitado a 80 columnas. Intenté aplastar la mesa para que encajara, pero eso no parecía demasiado agradable, así que tuve que usar un modo gráfico.
A continuación se muestra la fuente del texto, con líneas envueltas alrededor de 80 columnas para facilitar la lectura; tenga cuidado de que para que el programa funcione, debe guardarse en la página de códigos 437. Si lo prueba, verá que parpadeará mucho mientras se dibuja. Lo siento.
GW-Basic no guarda sus archivos de la manera más eficiente posible, por lo que para reducirlo a 660 bytes, debe abrir el archivo tokenizado en un editor y eliminar manualmente todos los espacios excepto uno, el final del carácter del archivo y la basura personaje delante de él. Esto reducirá su tamaño a 660 bytes y seguirá cargándose y funcionando bien.
Editar: dado que en este caso no importa que las variables sean enteras, ya que el error esperado es pequeño y las operaciones son similares
MOD
y\
redondas de todos modos, también podríamos convertirlas en variables de punto flotante, guardando un%
token en cada mención. Y noté el número35
produce con la frecuencia suficiente como para que los cinco bytes necesarios para guardarlo en una variable valgan la pena. Si ha mantenido la puntuación, habrá notado que ahorramos 43 bytes y el sistema de archivos está de acuerdo: hemos reducido a 617 bytes.Editar: Al cambiar ligeramente
S$
pude recortar seis bytes más: se(K=0)*64+
convirtióAND 127
.Editar: Bien, entonces recordé que quería cambiar la forma en que almaceno las áreas vacías. Esto redujo siete bytes más, cuatro en
S$
y tres más porqueGOSUB 3:
se cambió por>9
. Y sacrifiqué algo de eficiencia por otros dos bytes.Editar: ¡Rompí la barrera de los 600 bytes! Una cosa es obtener algo compacto en un idioma de golf, pero otra cosa es hacerlo en un idioma del mundo real. Y otra cosa más aún si lo manejas en GW-Basic de todas las cosas.
S$
tiene cinco bytes más grande, pero me salvó nueve bytes mediante la sustituciónASC(MID$(...))+I-95
conI+1
y añadiendoIF K=1 ... ELSE
la línea1
.fuente
Kotlin ,
168816671664 bytesProbablemente encuentre algunas mejoras para guardar bytes. Pero, lo hice funcionar, así que lo estoy publicando. Gracias mazzy por 21 bytes que te declaran. 3 bytes más eliminando la cadena de plantilla y usando u directamente.
Pruébalo en línea!
fuente
val u="_____"
antesfun Int.c()
y 2. reemplaza todas las ocurrencias de 5 guiones bajos en $ u. por ejemploif((r<2&&c>12)||(r==3&&c>2&&c<12))"_$u"
C (gcc) ,
623611 bytesPruébalo en línea!
Gracias gastropner por 2 bytes (y más el pensamiento) y cailingcat por 7 bytes
fuente
e()
macro. Enlazar.s[x/18*3+i<5|E(0)&4/7][x%18*6+i<5|E(0)&4%7]
parece no tener el mismo significadoBash + openssl + bzcat, 787 bytes
Las nuevas líneas son obligatorias. Emite la tabla periódica a
stdout
.fuente
openssl enc -d -base64
conbase64 -D
Powershell, bytes
1077937934906902888878842784688677673667651596 bytesJavascript del Puerto de Neil
Anexar
rv i,j,a
al final del script para poderrestart
.Sin golf
fuente
Retina , 888 bytes
Pruébalo en línea!
fuente
C ++, 866 bytes
Versión sin golf:
Python 3, 730 bytes
fuente
/// ,
987958 bytesPruébalo en línea!
Lo intenté
fuente
Lienzo , 289 bytes.
Pruébalo aquí!
fuente
Texto , 3148 bytes
Cálmate, es una broma.
fuente