Défi
Étant donné un nom d'élément, sortez sa configuration électronique.
Contribution
Votre entrée sera le nom complet de chaque élément (la plage allant de l'hydrogène, 1, au calcium, 20) à quelques exceptions près - vous devriez pouvoir prendre en compte les entrées suivantes:
Natrium - This is sodium
Kalium - This is potassium
Notez que les entrées "sodium" et "potassium" doivent toujours être valides.
La première lettre sera toujours en majuscule.
Production
Vous pouvez vous référer à cette page Web pour savoir comment générer un diagramme de configuration d'électrons.
La liste suivante montre le nombre maximum d'électrons dans chaque coque:
- 1ère coquille - 2 électrons
- 2e coque - 8 électrons
- 3e coquille - 8 électrons
- 4e coquille - 14 électrons (bien que le nombre maximal d'électrons requis dans cette coquille soit de 2)
Un exemple de sortie de la configuration électronique est le suivant:
Au centre du diagramme doit se trouver le symbole à une ou deux lettres de l'élément.
Des points ou des croix peuvent être utilisés et leur emplacement n'a pas d'importance.
La sortie ne doit pas être exactement comme celle-ci, mais elle doit être un graphique ASCII. La seule chose qu'il ne peut pas être est sous la forme 2.8.8.1
ou toute autre forme comme celle-ci.
Les cercles ne sont pas nécessaires
Les fonctions intégrées qui accèdent au tableau périodique des éléments ou produisent des diagrammes ou des configurations d'électrons sont interdites.
Gagnant
Le programme le plus court en octets gagne.
Réponses:
MATLAB,
360 363 290 304295 octetsVoir en bas de l'article pour savoir comment tester l'ancien code avec Octave.
Ce code prend le nom de l'élément (y compris Kalium, etc.) et affiche la sortie au format ascii maintenant que les règles ont changé.
Les règles ont changé depuis que j'ai écrit le code pour exiger une sortie ASCII. J'ai mis à jour mon code pour le faire au détriment de 14 octets. J'ai sauvé 9 octets en me débarrassant de la reshape () et en faisant juste le
a
matrice la bonne forme pour commencer.Voici une explication de son fonctionnement:
C'est la sortie pour l'hydrogène (ignorez les points, ils sont pour éviter que les lignes soient supprimées lors de l'affichage ici):
Et voici la sortie pour Calcium.
Et la sortie pour Natrium, qui fonctionne désormais correctement (avant Natrium, cela donnerait de l'azote!).
La nouvelle version du code ne fonctionne pas avec Octave car il utilise
spiral()
qui n'est présent que dans MATLAB.Vous pouvez cependant tester l'ancien code à l'aide de l' interpréteur en ligne Octave :
Exécutez cela, puis entrez une chaîne comme: «Hydrogène» (y compris les guillemets). Une fois cela fait, vous devrez cliquer sur le bouton de développement de l'intrigue (qui ressemble à un petit symbole graphique dans le coin supérieur droit de l'interpréteur) pour qu'il affiche tout. Dans Octave, il ajoute malheureusement des lignes joignant les points, cela ne se produit pas dans MATLAB. Mais au moins, cela vous permet de tester la logique derrière cela. Comme je l'ai dit, c'est toujours une sortie graphique, mais vous avez une idée de la façon dont les éléments sont recherchés.
la source
Python 3, 529 octets
remercie Thomas et Beta d'avoir souligné certaines choses qui auraient dû être évidentes pour moi, me faisant économiser quelques octets
amélioration massive: utilisation du découpage de chaîne au lieu de la recherche de dict
Pas le plus joli des programmes ou des sorties, mais bon, nous avions besoin de quelque chose pour lancer ce défi. Essayez-le en ligne .
la source
"H 1"
et les diviser plus tard dans l'espace?la source