En física atómica y química cuántica , la configuración electrónica es la distribución de electrones de un átomo en orbitales atómicos . Por ejemplo, la configuración electrónica del átomo de neón es 1s 2 2s 2 2p 6 . (De Wikipedia )
Desafío
Su desafío es tomar un número que represente el número atómico de un elemento y generar la configuración electrónica de ese elemento según lo definido por el principio de Aufbau .
El hierro (26) tiene la configuración electrónica . Sin embargo, los superíndices son innecesarios; la salida para 26 debe estar en la línea de .1s2 2s2 2p6 3s2 3p6 3d6 4s2
1s2 2s2 2p6 3s2 3p6 3d6 4s2
Especificación
- No tiene que manejar ninguna entrada fuera del rango
1 <= n <= 118
. - El resultado debe ser algo como los casos de prueba, pero puede utilizar cualquier carácter / caracteres no numéricos (aparte de
s
,p
,d
, yf
) para delimitar los diferentes orbitales. - Debe devolver / imprimir una cadena que contenga los nombres / valores / delmitadores orbitales; no puede simplemente devolver / imprimir una matriz.
- No necesita manejar ninguna excepción al principio de Aufbau; donde hay excepciones, imprimir la configuración "incorrecta" está bien.
Ejemplos:
Input -> Valid output -> Invalid output
16 -> 1s2 2s2 2p6 3s2 3p4 -> 1s22s22p63s23p4
16 -> 1s2, 2s2, 2p6, 3s2, 3p4 -> [[1, 2], [2, 2], [2, 6], [3, 2], [3, 4]]
17 -> 1s2+2s2+2p6+3s2+3p5 -> 1s2s2s2s2p6p3s2s3p5
Aquí hay una lista de todos los orbitales electrónicos. Los valores máximos que pueden contener están debajo del nombre:
name: 1s 2s 2p 3s 3p 3d 4s 4p 4d 5s 5p 4f 5d 6s 6p 5f 6d 7s 7p
max: 2 2 6 2 6 10 2 6 10 2 6 14 10 2 6 14 10 2 6
Casos de prueba
Input -> Output
1 -> 1s1
2 -> 1s2
16 -> 1s2 2s2 2p6 3s2 3p4
50 -> 1s2 2s2 2p6 3s2 3p6 3d10 4s2 4p6 4d10 5s2 5p2
115 -> 1s2 2s2 2p6 3s2 3p6 3d10 4s2 4p6 4d10 5s2 5p6 4f14 5d10 6s2 6p6 5f14 6d10 7s2 7p3
Aquí hay una lista completa y una implementación de referencia (¡ Pruébelo en línea! )
Condición ganadora
Como se trata de código de golf , ¡el código más corto gana!
3d
parece llenarse antes4s
,4d
antes5s
,6s
después4f
y5d
, lo que viola la regla de Madelung . ¿Deberíamos utilizar programas de golf que impriman las configuraciones electrónicas incorrectas en el pastebin?4s1 3d5
lugar de4s2 3d4
). Veo que se preguntó en la publicación de sandbox pero nunca fue respondida. ¿Ignoramos ese problema?Respuestas:
Gelatina ,
63 62 5655 bytesPruébalo en línea!
¡Gracias a user202729 por guardar 6 bytes con descompresión base!
Explicación
Primero construyo la lista
[[1,2,2,3,3,3,4,4,4,5,5,4,5,6,6,5,6,7,7],'sspspdspdspfdspfdsp']
con el código“ŒµḊuÆẓƙỊ’D,“çƥ÷£ḟ’ṃ“spdf”¤
en el segundo enlace.“ŒµḊuÆẓƙỊ’
es el número1223334445545665677
comprimido en la base 250.D
convierte en una lista de dígitos.“çƥ÷£ḟ’ṃ“spdf”
cambia el número de base 250“çƥ÷£ḟ’
a base 4 y lo indexa en la cadena de“spdf”
rendimiento'sspspdspdspfdspfdsp'
. Esto fue contribuido por el usuario202729.La lista se lleva al primer enlace por
Ç
. El primer enlace hace lo siguiente:Ahora de vuelta al segundo enlace. Con
xÇ
repetimos cada uno de los elementos en cada sublista de[[1,2,2,3...7],['sspspd...p']]
por los números en nuestra nueva lista[2,2,6...]
. Esto rinde[[1,1,2,2,2,2...],['sssspp...']]
.Z
comprime las dos sublistas que rinden[[1,'s'],[1,'s'],[2,'s']...]
.Ahora al enlace principal.
¢
llama al segundo enlace que produce la lista final de tuplas descrita anteriormente. Suponga que la entrada al programa es 5 como ejemplo.fuente
sspspdspd...
cuerda?“çƥ÷£ḟ’ṃ“spdf”¤
para -6 byte. Usado esto para base 250 entero yṃ
para descompresión de base.Tampio Imperativo , 930 bytes
Versión en línea
Es una implementación muy sencilla. En la versión golfed simplemente sustituye las palabras con palabras cortas como
ilo
,yö
,iso
,oma
, etc.Sin golf:
Versión en línea
Traducción:
La traducción es aproximada, tuve que cambiar el orden de las palabras para que el inglés fuera más natural.
fuente
Python 2 ,
129128bytes-1 byte gracias a notjagan
Pruébalo en línea!
fuente
Carbón , 72 bytes
Pruébalo en línea!
Aquí tienes la versión detallada .
fuente
JavaScript (ES6), 102 bytes
Casos de prueba
Mostrar fragmento de código
Formateado y comentado
fuente
Swift ,
177175156 bytesBasada en la respuesta Javascript de @ Arnauld
Pruébalo en línea!
Sin los espacios en los grupos de electrones,
190187169 bytes:Pruébalo en línea!
fuente
C (gcc),
260187167156152147143138 bytesPruébalo en línea! Golfed desde la implementación de referencia.
StackExchange elimina los no imprimibles, por lo que el valor de
m
se reemplaza por"..."
.Aquí hay un hexdump reversible del programa, ya que utiliza no imprimibles en una cadena, que reemplaza la matriz de enteros
{2,2,6,2,6,10,2,6,10,2,6,14,10,2,6,14,10,2,6}
con los valores de bytes literales de los enteros.Alternativamente, puede copiar el código del enlace TIO.
fuente