Tugas Anda adalah mengambil string yang mengandung isotop elemen sebagai input, dikodekan seperti contoh berikut dengan nomor atom diikuti oleh spasi dan simbol kimia IUPAC untuk elemen:
162 Dy
dan mengembalikan jumlah neutron dalam atom isotop itu.
Dalam contoh di atas, dysprosium-162 memiliki 96 neutron (162 total nukleon, minus 66 proton karena itu dysprosium), jadi hasilnya seharusnya 96
.
Anda dapat mengasumsikan bahwa elemen yang diberikan akan menjadi salah satu dari 114 elemen yang saat ini diberikan nama permanen oleh IUPAC (termasuk flerovium dan livermorium) dan bukan nama generik seperti Uus
untuk "ununseptium". Anda juga dapat mengasumsikan bahwa jumlah atom isotop tidak akan melebihi 1000, atau kurang dari jumlah proton dalam elemen.
Anda tidak boleh menggunakan built-in untuk mengambil data tentang jumlah elemen proton atau neutron, atau menggunakan fungsi apa pun dalam kode Anda yang mengevaluasi sendiri string atau nomor token sebagai kode.
Program untuk menggunakan token paling sedikit untuk melakukan ini dalam bahasa apa pun menang. Namun, untuk tujuan tantangan ini, setiap karakter dalam string, atau nama variabel yang dikonversi menjadi string, dihitung sebagai token.
Daftar elemen dan nomor atomnya untuk referensi:
sumber
65
satu token atau 2 token?f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]
Jawaban:
CJam,
1206 atau 116 tokenJika angka adalah token tunggal, maka kami memiliki seluruh kode sebagai 6 token:
dimana token berada
Kode ini setara dengan kode di bawah ini yang berisi versi string dari angka besar dalam kode di atas. Tetapi karena sebuah string, kode di bawah ini memiliki 116 token:
Token (dengan penjelasan) adalah
Untuk menjalankan string di atas, salin kode dari tautan ini saat SE menghapus beberapa karakter saat mengunggah jawabannya.
Ini dapat dikurangi menjadi 109 token juga, tetapi kemudian SE tidak akan membiarkan saya mengunggah jawaban saya, melempar pengecualian URI cacat.
Inputnya seperti
Outputnya seperti
String aneh hanyalah string dasar yang berisi semua nama IUPAC di
Atomic number * 2 - 1
indeks mereka .Cobalah online di sini
sumber
B
danI
muncul sebelum mereka.In
.Python 3 dengan exec, 17 token
Python 3 tanpa exec, 35 token
Ruby dengan eval, 17 token
Javascript, 49 token
Hanya untuk mengilustrasikan Hitung int-besar / simbol / variabel sebagai N token di atomic-code-golf :)
sumber
eval
danexec
menentangnya?Javascript, 42 token (?)
PS: Di mana saya dapat menemukan beberapa skrip untuk menghitung token?
sumber