Su tarea es tomar una cadena que contenga un isótopo de un elemento como entrada, codificada como el siguiente ejemplo con el número atómico seguido de un espacio y el símbolo químico IUPAC para el elemento:
162 Dy
y devuelve el número de neutrones en un átomo de ese isótopo.
En el ejemplo anterior, el disprosio-162 tiene 96 neutrones (162 nucleones totales, menos 66 protones porque es disprosio), por lo que la salida debería ser 96
.
Puede suponer que el elemento dado será uno de los 114 elementos que la IUPAC le da actualmente nombres permanentes (incluidos flerovium y livermorium) y no un nombre genérico como Uus
"ununseptium". También puede suponer que el número atómico del isótopo no excederá 1000, o será menor que el número de protones en el elemento.
No puede usar elementos integrados para recuperar datos sobre el número de elementos de protones o neutrones, ni usar ninguna función dentro de su código que evalúe una cadena o token de número como código por sí solo.
El programa para usar la menor cantidad de tokens para hacer esto en cualquier idioma gana. Sin embargo, para el propósito de este desafío, cada carácter en una cadena, o un nombre de variable convertido en una cadena, cuenta como un token.
Lista de elementos y su número atómico para referencia:
fuente
65
un solo token o 2 tokens?f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]
Respuestas:
CJam,
1206 o 116 tokensSi los números son una sola ficha, entonces tenemos el código completo como 6 fichas:
donde están las fichas
Este código es equivalente al siguiente código que contiene la versión de cadena del número grande en el código anterior. Pero debido a una cadena, el siguiente código tiene 116 tokens:
Los tokens (con explicación) son
Para ejecutar la cadena anterior, copie el código de este enlace ya que SE elimina algunos caracteres mientras carga la respuesta.
Esto también se puede reducir a 109 tokens, pero entonces SE no me permitirá cargar mi respuesta, arrojando una excepción de URI con formato incorrecto.
La entrada va como
la salida es como
La cadena extraña es solo una cadena codificada base que contiene todos los nombres IUPAC en su
Atomic number * 2 - 1
índice.Pruébalo en línea aquí
fuente
B
yI
aparecen antes que ellos.In
.Python 3 con exec, 17 tokens
Python 3 sin ejecutivo, 35 tokens
Rubí con eval, 17 fichas
Javascript, 49 tokens
Solo para ilustrar Count big-ints / symbols / variables como N tokens en atomic-code-golf :)
fuente
eval
yexec
trabajar en contra de eso?Javascript, 42 tokens (?)
PD: ¿Dónde puedo encontrar algún script para contar fichas?
fuente