Votre tâche consiste à prendre une chaîne contenant un isotope d'un élément en entrée, codée comme l'exemple suivant avec le numéro atomique suivi d'un espace et du symbole chimique IUPAC de l'élément:
162 Dy
et retourner le nombre de neutrons dans un atome de cet isotope.
Dans l'exemple ci-dessus, le dysprosium-162 a 96 neutrons (162 nucléons au total, moins 66 protons parce que c'est du dysprosium), donc la sortie devrait être 96
.
Vous pouvez supposer que l'élément donné sera l'un des 114 éléments actuellement nommés de façon permanente par l'UICPA (y compris le flerovium et le livermorium) et non un nom générique comme Uus
pour "ununseptium". Vous pouvez également supposer que le numéro atomique de l'isotope ne dépassera pas 1000, ou sera inférieur au nombre de protons dans l'élément.
Vous ne pouvez pas utiliser les fonctions intégrées pour récupérer des données sur le nombre d'éléments protons ou neutrons, ou utiliser une fonction dans votre code qui évalue une chaîne ou un jeton numérique comme code à part entière.
Le programme qui utilise le moins de jetons pour le faire dans n'importe quelle langue gagne. Cependant, aux fins de ce défi, chaque caractère d'une chaîne ou un nom de variable converti en chaîne compte comme un jeton.
Liste des éléments et leur numéro atomique pour référence:
la source
65
qu'un seul jeton ou 2 jetons?f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]
Réponses:
CJam,
1206 ou 116 jetonsSi les nombres sont un seul jeton, alors nous avons le code entier sous forme de 6 jetons:
où sont les jetons
Ce code est équivalent au code ci-dessous contenant la version chaîne du grand nombre dans le code ci-dessus. Mais en raison d'une chaîne, le code ci-dessous a 116 jetons:
Les jetons (avec explication) sont
Pour exécuter la chaîne ci-dessus, copiez le code de ce lien car SE supprime certains caractères lors du téléchargement de la réponse.
Cela peut également être réduit à 109 jetons, mais SE ne me laissera pas télécharger ma réponse, lançant une exception d'URI malformée.
L'entrée va comme
la sortie est comme
La chaîne étrange est juste une chaîne codée de base contenant tous les noms IUPAC à leur
Atomic number * 2 - 1
index.Essayez-le en ligne ici
la source
B
etI
apparaissent devant elles.In
.Python 3 avec exec, 17 jetons
Python 3 sans exec, 35 jetons
Rubis avec éval, 17 jetons
Javascript, 49 jetons
Juste pour illustrer Compter les gros-nombres / symboles / variables comme N jetons dans atomic-code-golf :)
la source
eval
et leexec
travail contre cela?Javascript, 42 jetons (?)
PS: Où puis-je trouver un script pour compter les jetons?
la source