Desafio
Dado o nome de um elemento, produza sua configuração eletrônica.
Entrada
Sua entrada será o nome completo de cada elemento (o intervalo é de hidrogênio, 1 a cálcio, 20), com algumas exceções - você deve ser capaz de considerar as seguintes entradas:
Natrium - This is sodium
Kalium - This is potassium
Observe que as entradas "sódio" e "potássio" ainda devem ser válidas.
A primeira letra será sempre maiúscula.
Resultado
Você pode consultar esta página da Web para obter orientações sobre como gerar um diagrama de configuração eletrônica.
A lista a seguir mostra o número máximo de elétrons em cada invólucro:
- 1a camada - 2 elétrons
- 2a camada - 8 elétrons
- 3a camada - 8 elétrons
- 4ª camada - 14 elétrons (embora o número máximo de elétrons nesta camada necessária seja 2)
Um exemplo de saída da configuração eletrônica é o seguinte:
No centro do diagrama deve estar o símbolo de uma a duas letras do elemento.
Pontos ou cruzes podem ser usados e o local onde são colocados não importa.
A saída não precisa ser exatamente assim, mas precisa ser um gráfico ASCII. A única coisa que não pode ser é na forma 2.8.8.1
ou em qualquer outra forma como esta.
Os círculos não são necessários
Funções incorporadas que acessam a tabela periódica de elementos ou produzem diagramas ou configurações eletrônicas são proibidas.
Ganhando
O programa mais curto em bytes vence.
Respostas:
MATLAB,
360 363 290 304295 bytesVeja na parte inferior da postagem como testar o código antigo com o Octave.
Esse código pega o nome do elemento (incluindo Kalium, etc.) e exibe a saída no formato ascii agora que as regras foram alteradas.
As regras foram alteradas desde que escrevi o código para exigir uma saída ASCII. Eu atualizei meu código para fazer isso à custa de 14 bytes. Eu salvei 9 bytes, livrando-me da reformulação () e apenas tornando a
a
matriz a forma correta para começar.Aqui está uma explicação de como funciona:
Esta é a saída do hidrogênio (ignore os pontos, eles devem evitar que as linhas sejam removidas ao serem exibidas aqui):
E aqui está a saída para o cálcio.
E a saída do Natrium, que agora funciona corretamente (antes do Natrium resultaria em nitrogênio!).
A nova versão do código não funciona com o Octave, pois usa o
spiral()
que está presente apenas no MATLAB.No entanto, você pode testar o código antigo usando o interpretador online Octave :
Execute isso e insira uma sequência como: 'Hidrogênio' (incluindo as aspas). Uma vez feito, você terá que clicar no botão de expansão da plotagem (parece um pequeno símbolo gráfico no canto superior direito do intérprete) para que ele mostre tudo. Infelizmente, no Octave, adicionamos linhas unindo os pontos, isso não acontece no MATLAB. Mas pelo menos permite testar a lógica por trás disso. Como eu disse, ainda é uma saída gráfica, mas você tem a idéia de como os elementos são pesquisados.
fonte
Python 3, 529 bytes
obrigado Thomas e Beta por apontar algumas coisas que deveriam ter sido óbvias para mim, economizando alguns bytes
melhoria maciça: usando o corte de cordas em vez de pesquisa de ditado
Não é o mais bonito dos programas ou resultados, mas, ei, precisávamos de algo para lançar esse desafio. Experimente online .
fonte
"H 1"
e dividi-los no espaço mais tarde?fonte