Ваша задача - взять строку, содержащую изотоп элемента в качестве входных данных, закодированный, как показано в следующем примере, с атомным номером, за которым следует пробел и химический символ IUPAC для элемента:
162 Dy
и вернуть количество нейтронов в атоме этого изотопа.
В приведенном выше примере диспрозий-162 имеет 96 нейтронов (всего 162 нуклона, минус 66 протонов, потому что это диспрозий), поэтому выход должен быть 96
.
Вы можете предположить, что данный элемент будет одним из 114 элементов, которым IUPAC в настоящее время присвоены постоянные имена (включая флеровий и ливерморорий), а не общее название, например Uus
«ununseptium». Вы также можете предположить, что атомный номер изотопа не будет превышать 1000, или будет меньше, чем число протонов в элементе.
Вы не можете использовать встроенные модули для извлечения данных о протонном или нейтронном числе элементов или использовать какую-либо функцию в вашем коде, которая самостоятельно оценивает строку или числовой токен как код.
Победит программа, использующая наименьшее количество токенов для этого на любом языке. Однако для этой задачи каждый символ в строке или имя переменной, преобразованной в строку, считается токеном.
Список элементов и их атомный номер для справки:
источник
65
это один токен или 2 токена?f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]
Ответы:
CJam,
1206 или 116 токеновЕсли числа являются одним токеном, то мы имеем весь код в виде 6 токенов:
где токены
Этот код эквивалентен приведенному ниже коду, содержащему строковую версию большого числа в приведенном выше коде. Но из-за строки приведенный ниже код имеет 116 токенов:
Жетоны (с объяснением)
Чтобы запустить приведенную выше строку, скопируйте код из этой ссылки, так как SE удаляет некоторые символы при загрузке ответа.
Это также может быть уменьшено до 109 токенов, но тогда SE не разрешит мне загрузить мой ответ, исключая искаженный URI.
Ввод идет как
выход похож
Странная строка - это просто строка в базовой кодировке, содержащая все имена IUPAC в их
Atomic number * 2 - 1
индексе.Попробуйте онлайн здесь
источник
B
иI
появляются перед ними.In
.Python 3 с exec, 17 токенов
Python 3 без exec, 35 токенов
Рубин с eval, 17 жетонов
Javascript, 49 токенов
Просто чтобы проиллюстрировать подсчет больших ints / символов / переменных как N токенов в atomic-code-golf :)
источник
eval
иexec
работает против этого?Javascript, 42 токена (?)
PS: Где я могу найти скрипт для подсчета токенов?
источник