Dalam fisika atom dan kimia kuantum , konfigurasi elektron adalah distribusi elektron suatu atom dalam orbital atom . Sebagai contoh, konfigurasi elektron dari atom neon adalah 1s 2 2s 2 2p 6 . (Dari Wikipedia )
Tantangan
Tantangan Anda adalah mengambil nomor yang mewakili nomor atom suatu elemen dan menampilkan konfigurasi elektron elemen tersebut seperti yang didefinisikan oleh prinsip Aufbau .
Besi (26) memiliki konfigurasi elektron . Namun, superskrip tidak perlu; output untuk 26 harus sepanjang baris .1s2 2s2 2p6 3s2 3p6 3d6 4s2
1s2 2s2 2p6 3s2 3p6 3d6 4s2
Spesifikasi
- Anda tidak harus menangani input apa pun di luar kisaran
1 <= n <= 118
. - Output Anda harus terlihat seperti uji kasus, tetapi Anda dapat menggunakan non-digit karakter / karakter (selain dari
s
,p
,d
, danf
) untuk membatasi orbital yang berbeda. - Anda harus mengembalikan / mencetak string yang berisi nama / nilai / penghapus orbital; Anda tidak bisa hanya mengembalikan / mencetak array.
- Anda tidak perlu menangani pengecualian untuk prinsip Aufbau; di mana ada pengecualian, mencetak konfigurasi "salah" baik-baik saja.
Contoh:
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
Berikut adalah daftar semua orbital elektronik. Nilai maksimum yang dapat dikandungnya di bawah nama:
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
Uji Kasus
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
Ini adalah daftar lengkap dan semacam implementasi referensi ( Coba online! )
Kondisi Menang
Karena ini adalah kode-golf , kode terpendek menang!
3d
sepertinya diisi sebelum4s
,4d
sebelum5s
,6s
sesudah4f
dan5d
, yang melanggar aturan Madelung . Haruskah kita bermain golf yang mencetak konfigurasi elektron yang salah pada pastebin?4s1 3d5
menggantikan4s2 3d4
). Saya melihat bahwa itu diminta di pos kotak pasir tetapi tidak pernah dijawab. Apakah kita mengabaikan masalah itu?Jawaban:
Jelly ,
63 62 5655 byteCobalah online!
Terima kasih kepada user202729 untuk menghemat 6 byte dengan dekompresi basis!
Penjelasan
Pertama saya membuat daftar
[[1,2,2,3,3,3,4,4,4,5,5,4,5,6,6,5,6,7,7],'sspspdspdspfdspfdsp']
dengan kode“ŒµḊuÆẓƙỊ’D,“çƥ÷£ḟ’ṃ“spdf”¤
di tautan kedua.“ŒµḊuÆẓƙỊ’
adalah angka yang1223334445545665677
dikompres menjadi basis 250.D
memberikan ini menjadi daftar digit.“çƥ÷£ḟ’ṃ“spdf”
mengubah nomor base 250“çƥ÷£ḟ’
menjadi base 4 dan mengindeksnya menjadi string yang“spdf”
menghasilkan'sspspdspdspfdspfdsp'
. Ini disumbangkan oleh user202729.Daftar ini kemudian dibawa ke tautan pertama
Ç
. Tautan pertama melakukan hal berikut:Sekarang kembali ke tautan kedua. Dengan
xÇ
kami ulangi setiap elemen dalam setiap sublist dari[[1,2,2,3...7],['sspspd...p']]
dengan angka dalam daftar baru kami[2,2,6...]
. Ini menghasilkan[[1,1,2,2,2,2...],['sssspp...']]
.Z
ritsleting dua sublist yang menghasilkan[[1,'s'],[1,'s'],[2,'s']...]
.Sekarang ke tautan utama.
¢
memanggil tautan kedua yang menghasilkan daftar tupel terakhir yang dijelaskan di atas. Asumsikan input ke program adalah 5 sebagai contoh.sumber
sspspdspd...
string?“çƥ÷£ḟ’ṃ“spdf”¤
untuk -6 byte. Digunakan ini untuk basis 250 integer danṃ
untuk dekompresi basis.Tampio Imperatif , 930 byte
Versi online
Ini adalah implementasi yang sangat mudah. Dalam versi golfed saya hanya mengganti kata-kata dengan kata-kata pendek seperti
ilo
,yö
,iso
,oma
, dllTidak Disatukan:
Versi online
Terjemahan:
Terjemahan adalah perkiraan, saya harus mengubah urutan kata untuk membuat bahasa Inggris lebih alami.
sumber
Python 2 ,
129128 byte-1 byte terima kasih kepada notjagan
Cobalah online!
sumber
Arang , 72 byte
Cobalah online!
Di sini Anda memiliki versi verbose .
sumber
JavaScript (ES6), 102 byte
Uji kasus
Tampilkan cuplikan kode
Diformat dan dikomentari
sumber
Swift ,
177175156 bytesLonggar berdasarkan jawaban Javascript @ Arnauld
Cobalah online!
Tanpa spasi dalam grup elektron,
190187169 byte:Cobalah online!
sumber
C (gcc),
260187167156152147143138 byteCobalah online! Dikutip dari implementasi referensi.
StackExchange menghapus unsintables, sehingga nilai
m
diganti dengan"..."
.Berikut ini adalah hexdump reversibel dari program, karena menggunakan unsintables dalam string, yang menggantikan array integer
{2,2,6,2,6,10,2,6,10,2,6,14,10,2,6,14,10,2,6}
dengan nilai byte literal dari integer.Atau, Anda bisa menyalin kode dari tautan TIO.
sumber