В атомной физике и квантовой химии , то электронная конфигурация является распределение электронов в качестве атома в атомных орбиталей . Например, электронная конфигурация атома неона равна 1s 2 2s 2 2p 6 . (Из Википедии )
Вызов
Ваша задача состоит в том, чтобы взять число, представляющее атомный номер элемента, и вывести электронную конфигурацию этого элемента в соответствии с принципом Ауфбау .
Железо (26) имеет электронную конфигурацию . Однако верхние индексы не нужны; вывод для 26 должен быть в соответствии с .1s2 2s2 2p6 3s2 3p6 3d6 4s2
1s2 2s2 2p6 3s2 3p6 3d6 4s2
Спецификация
- Вам не нужно обрабатывать какие-либо входы за пределы диапазона
1 <= n <= 118
. - Ваш результат должен выглядеть как в тестовых примерах, но вы можете использовать любые нецифровые символы / символы (кроме
s
,p
,d
иf
) , чтобы разграничить различные орбитали. - Вы должны вернуть / напечатать строку, содержащую орбитальные имена / значения / делмитеры; Вы не можете просто вернуть / напечатать массив.
- Вам не нужно обрабатывать какие-либо исключения из принципа Aufbau; там, где есть исключения, распечатка «неправильной» конфигурации - это нормально.
Примеры:
Input -> Valid output -> Invalid output
16 -> 1s2 2s2 2p6 3s2 3p4 -> 1s22s22p63s23p4
16 -> 1s2, 2s2, 2p6, 3s2, 3p4 -> [[1, 2], [2, 2], [2, 6], [3, 2], [3, 4]]
17 -> 1s2+2s2+2p6+3s2+3p5 -> 1s2s2s2s2p6p3s2s3p5
Вот список всех электронных орбиталей. Максимальные значения, которые они могут содержать, находятся ниже имени:
name: 1s 2s 2p 3s 3p 3d 4s 4p 4d 5s 5p 4f 5d 6s 6p 5f 6d 7s 7p
max: 2 2 6 2 6 10 2 6 10 2 6 14 10 2 6 14 10 2 6
Тестовые случаи
Input -> Output
1 -> 1s1
2 -> 1s2
16 -> 1s2 2s2 2p6 3s2 3p4
50 -> 1s2 2s2 2p6 3s2 3p6 3d10 4s2 4p6 4d10 5s2 5p2
115 -> 1s2 2s2 2p6 3s2 3p6 3d10 4s2 4p6 4d10 5s2 5p6 4f14 5d10 6s2 6p6 5f14 6d10 7s2 7p3
Вот полный список и справочная реализация сортов ( попробуйте онлайн! )
Условие победы
Поскольку это код-гольф , выигрывает самый короткий код!
3d
кажется, заполняется до4s
,4d
до5s
,6s
после4f
и5d
, что нарушает правило Маделунга . Должны ли мы играть в гольф программы, которые печатают неправильные электронные конфигурации на пастбине?4s1 3d5
вместо хрома (атомный № 24)4s2 3d4
). Я вижу, что это было задано в песочнице, но так и не получил ответа. Мы игнорируем эту проблему?Ответы:
Желе ,
63 62 5655 байтПопробуйте онлайн!
Спасибо пользователю 202729 за сохранение 6 байтов с базовой распаковкой!
объяснение
Сначала я строю список
[[1,2,2,3,3,3,4,4,4,5,5,4,5,6,6,5,6,7,7],'sspspdspdspfdspfdsp']
с кодом“ŒµḊuÆẓƙỊ’D,“çƥ÷£ḟ’ṃ“spdf”¤
во второй ссылке.“ŒµḊuÆẓƙỊ’
это число,1223334445545665677
сжатое в базу 250.D
дает превращает это в список цифр.“çƥ÷£ḟ’ṃ“spdf”
изменяет число 250“çƥ÷£ḟ’
в базу 4 и индексирует ее в строку,“spdf”
дающую'sspspdspdspfdspfdsp'
. Это было предоставлено пользователем 202729.Затем список переходит к первой ссылке
Ç
. Первая ссылка делает следующее:Теперь вернемся ко второй ссылке. При этом
xÇ
мы повторяем каждый из элементов в каждом подсписке[[1,2,2,3...7],['sspspd...p']]
по номерам в нашем новом списке[2,2,6...]
. Это дает[[1,1,2,2,2,2...],['sssspp...']]
.Z
молнии два подсписка, который дает[[1,'s'],[1,'s'],[2,'s']...]
.Теперь к основной ссылке.
¢
вызывает вторую ссылку, которая дает окончательный список кортежей, описанных выше. Предположим, что вход для программы 5 в качестве примера.источник
sspspdspd...
строку?“çƥ÷£ḟ’ṃ“spdf”¤
для -6 байт. Использовал это для базовых 250 целых чисел иṃ
для базовой декомпрессии.Императив Тампио , 930 байт
Онлайн версия
Это очень простая реализация. В golfed версии я просто заменить слова с короткими словами нравится
ilo
,yö
,iso
,oma
и т.д.Ungolfed:
Онлайн версия
Перевод:
Перевод приблизительный, мне пришлось изменить порядок слов, чтобы сделать английский более естественным.
источник
Python 2 ,
129128 байтов-1 байт благодаря notjagan
Попробуйте онлайн!
источник
Древесный уголь , 72 байта
Попробуйте онлайн!
Здесь у вас есть подробная версия .
источник
JavaScript (ES6), 102 байта
Контрольные примеры
Показать фрагмент кода
Отформатировано и прокомментировано
источник
Swift ,
177175156 байтПохоже на ответ Javascript @ Arnauld's
Попробуйте онлайн!
Без пробелов в электронных группах
190187169 байт:Попробуйте онлайн!
источник
C (gcc),
260187167156152147143138 байтПопробуйте онлайн!Гольф от эталонной реализации.
StackExchange удаляет непечатаемые, поэтому значение
m
заменяется на"..."
.Вот обратимый hexdump программы, так как он использует непечатаемые в строке, который заменяет целочисленный массив
{2,2,6,2,6,10,2,6,10,2,6,14,10,2,6,14,10,2,6}
буквенными байтовыми значениями целых чисел.Кроме того, вы можете просто скопировать код из ссылки TIO.
источник