Salah satu properti bagus dari bahasa Turing-lengkap adalah bahwa ia dapat digunakan untuk menulis program apa pun, hingga dan termasuk simulasi seluruh Semesta.
Tugas Anda adalah melakukan hal itu: menulis sebuah program yang mensimulasikan Semesta .
Catatan: walaupun saya tidak ragu Anda akan dapat menyelesaikan tugas ini, saat ini saya tidak punya cukup waktu luang untuk memverifikasi apakah semua 10 90 partikel dalam simulasi Anda melakukan apa yang seharusnya mereka lakukan. Karena itu, semata-mata untuk menyederhanakan pengujian dan evaluasi, cukup jika simulator semesta Anda hanya bekerja dengan satu partikel awal. Agar hal-hal menarik, mari kita asumsikan partikel ini adalah Higgs Boson yang baru ditemukan.
Alam semesta Anda dimulai dengan apa pun kecuali satu Higgs Boson sekitar 120 GeV di tengahnya. Untuk tidak membuat output terlalu lama, mari kita buat semesta ini berdetak hanya pada 10 -25 detik alih-alih "rate clock yang biasa" sebesar 5,4 × 10 −44 detik ..
Boson Higgs ini akan meluruh cepat atau lambat karena memiliki waktu paruh 1,6 × 10 −22 detik, sehingga pada setiap tik simulasi, ia memiliki peluang 0,0433% untuk meluruh. Anda dapat memeriksa di sini apa yang akan membusuk . Untuk memiliki persyaratan sentral dan disederhanakan, saya mencantumkan rasio percabangan yang harus Anda gunakan:
Menjalankan simulasi
Pada setiap centang simulasi, boson Higgs memiliki peluang 0,0433% untuk membusuk. Jika itu terjadi, itu akan membusuk menjadi partikel-partikel berikut, dengan probabilitas terdaftar (Anda harus menggunakan nama-nama ini di output):
- bawah quark + bawah antiquark (64,8%)
- 2 boson W (14,1%)
- 2 gluon (8,82%)
- tau lepton + antitau lepton (7.04%)
- charm quark + charm antiquark (3.27%)
- 2 Z boson (1,59%)
- 2 foton (0,223%)
- 1 Z boson + 1 foton (0,111%)
- muon + antimuon (0,0244%)
- kuark atas + antiquark atas (0,0216%)
Untuk total 100%.
Beberapa partikel ini akan membusuk lebih jauh.
W boson : paruh 10 -25 detik, ini berarti peluang 50% untuk meluruh di setiap tick menjadi salah satu dari berikut ini, dengan probabilitas yang sama:
- positron + neutrino
- antimuon + neutrino
- antitau lepton + neutrino
Z boson : paruh 10 -25 detik, ini berarti peluang 50% untuk meluruh di setiap tik menjadi salah satu dari berikut ini:
- neutrino + antineutrino (20,6%)
- elektron + positron (3,4%)
- muon + antimuon (3,4%)
- tau lepton + antitau lepton (3.4%)
- down quark + down antiquark (15.2%)
- aneh quark + aneh unik (15.2%)
- bawah quark + bawah antiquark (15,2%)
- up quark + up antiquark (11,8%)
- charm quark + charm antiquark (11.8%)
quark atas : waktu paruh 5 × 10 -25 detik, ini berarti peluang 12,95% untuk meluruh di setiap tick menjadi yang berikut, dengan probabilitas yang sama:
- W boson + down quark
- W boson + quark aneh
- W boson + quark bawah
Tentu saja, boson W juga akan segera membusuk ...
The antiquark atas berperilaku mirip dengan top quark: itu membusuk menjadi boson W dan iklan / s / b antiquark.
Semua partikel lain (jadi semua kecuali bos Z dan W dan quark atas) memiliki waktu paruh lebih banyak, sehingga untuk tidak mengacaukan output, mereka semua dianggap stabil untuk simulasi kami .
Karena alam semesta sebagian besar kosong, semua partikel akan memiliki ruang yang cukup untuk diri mereka sendiri dan tidak akan saling berinteraksi. Oleh karena itu semua partikel individu tidak saling bergantung satu sama lain dalam segala hal, termasuk kemungkinan pemisahan.
Keluaran:
Setiap tanda centang dari simulasi, Anda harus mencetak isi dari semesta yang disimulasikan menjadi baris baru. Sebagai contoh:
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 2 W bosons.
The universe contains 2 W bosons.
The universe contains 1 W boson, 1 positron and 1 neutrino.
The universe contains 1 positron, 1 antitau lepton and 2 neutrinos.
Simulation ended after 0.8 yoctoseconds.
Urutan partikel dalam garis tidak penting. Namun, formatnya harus persis seperti pada contoh di atas , termasuk tanda baca dan pluralisasi. Jika Anda mensimulasikan seluruh alam semesta (mini-), itu akan terlihat bagus (Dan saya ingin menghilangkan penyalahgunaan persyaratan output yang tidak cukup ketat)
Setiap baris berhubungan dengan 0,1 yoctoseconds, tetapi Anda akan dimaafkan jika dibutuhkan waktu lebih lama dari itu agar program Anda mencetak hasil.
Simulasi berakhir ketika hanya partikel "stabil" yang tersisa.
Mencetak gol
Aturan golf kode standar berlaku.
Pembuat angka acak bisa pseudo-acak, tetapi Anda harus menaburnya jika bahasa tidak menaburnya secara default. Distribusi probabilitas RNG Anda harus seragam.
- Anda akan mendapatkan bonus -10% dari ukuran kode jika program mengambil integer sebagai input, dan mulai dengan boson Higgs yang banyak.
Pengecualian untuk penggemar mesin Turing.
Bagi mereka yang berani mencoba peruntungan dengan mesin Turing yang sebenarnya atau bahasa yang serupa (seperti Brainfuck), tugas mereka menjadi lebih mudah dengan perubahan aturan berikut (hanya berlaku jika bahasa tersebut merupakan turunan Brainfuck atau turunan Turing yang sangat disederhanakan). mesin, tidak mampu melakukan tugas, tidak memiliki ALU, dan nilai-nilai pada rekaman itu hanya dapat ditambah dan dikurangi dengan satu) :
- Nama-nama partikel disederhanakan menjadi d, s, b, t, u, c untuk quark, v untuk neutrino, T untuk tau lepton, m untuk muon, g untuk gluon, p untuk foton, Z, W dan H untuk boson, - untuk elektron dan + untuk positron. Pada setiap centang, input dengan nilai 0 atau 1 disediakan dari input standar, ditunjukkan apakah partikel tidak stabil pertama dalam daftar meluruh atau tidak.
Output contoh karenanya akan menjadi
H
H
H
H
W W
W W
W + n
+ !T n n
SimulateUniverse
fungsi bawaan?