Desafío
Dado un nombre de elemento, genera su configuración electrónica.
Entrada
Su entrada será el nombre completo de cada elemento (el rango es de Hidrógeno, 1, a Calcio, 20) con algunas excepciones: debe poder tener en cuenta las siguientes entradas:
Natrium - This is sodium
Kalium - This is potassium
Tenga en cuenta que las entradas "sodio" y "potasio" aún deben ser válidas.
La primera letra siempre estará en mayúscula.
Salida
Puede consultar esta página web para obtener orientación sobre cómo generar un diagrama de configuración electrónica.
La siguiente lista muestra el número máximo de electrones en cada capa:
- 1ra caparazón - 2 electrones
- 2a capa - 8 electrones
- Tercera caparazón - 8 electrones
- 4.a capa : 14 electrones (aunque el número máximo de electrones requerido en esta capa es 2)
Un ejemplo de salida de la configuración electrónica es el siguiente:
En el centro del diagrama debe estar el símbolo de una o dos letras del elemento.
Se pueden usar puntos o cruces y no importa dónde se coloquen.
La salida no tiene que ser exactamente así, pero tiene que ser un gráfico ASCII. Lo único que no puede ser es la forma 2.8.8.1
o cualquier otra forma como esta.
Los círculos no son necesarios
Las funciones integradas que acceden a la tabla periódica de elementos o producen diagramas o configuraciones electrónicas no están permitidas.
Victorioso
El programa más corto en bytes gana.
Respuestas:
MATLAB,
360 363 290 304295 bytesVea al final de la publicación cómo probar el código antiguo con Octave.
Este código toma el nombre del elemento (incluido Kalium, etc.) y muestra la salida en formato ASCII ahora que las reglas han cambiado.
Las reglas cambiaron desde que escribí el código para requerir una salida ASCII. He actualizado mi código para hacer esto a expensas de 14 bytes. He ahorrado 9 bytes al deshacerme de la remodelación () y simplemente haciendo que la
a
matriz tenga la forma correcta para empezar.Aquí hay una explicación de cómo funciona:
Esta es la salida para Hidrógeno (ignore los puntos, son para evitar que las líneas se eliminen cuando se muestran aquí):
Y aquí está la salida de calcio.
Y la salida de Natrium, que ahora funciona correctamente (¡antes de Natrium daría lugar a Nitrógeno!).
La nueva versión del código no funciona con Octave, ya que utiliza
spiral()
que solo está presente en MATLAB.Sin embargo, puede probar el código anterior con el intérprete en línea de Octave :
Ejecute eso, luego ingrese una cadena como: 'Hidrógeno' (incluidas las comillas). Una vez hecho esto, tendrá que hacer clic en el botón para expandir el diagrama (se ve como un pequeño símbolo gráfico en la esquina superior derecha del intérprete) para que muestre todo. Desafortunadamente, en Octave agrega líneas que unen los puntos, esto no sucede en MATLAB. Pero al menos le permite probar la lógica detrás de esto. Como digo, esto sigue siendo una salida gráfica, pero te haces una idea de cómo se buscan los elementos.
fuente
Python 3, 529 bytes
gracias Thomas y Beta por señalar algunas cosas que deberían haber sido obvias para mí, ahorrándome algunos bytes
mejora masiva: uso de corte de cadena en lugar de búsqueda dict
No es el más bonito de los programas o productos, pero bueno, necesitábamos algo para iniciar este desafío. Pruébalo en línea .
fuente
"H 1"
y dividirlos en el espacio más tarde?fuente