Una bella proprietà di un linguaggio completo di Turing è che può essere utilizzato per scrivere qualsiasi programma, fino alla simulazione dell'intero universo inclusa.
Il tuo compito è quello di fare esattamente questo: scrivere un programma che simuli l'Universo .
Nota: anche se non dubito che sarai in grado di svolgere questo compito, al giorno d'oggi non ho abbastanza tempo libero per verificare se tutte le 10 90 particelle della tua simulazione fanno quello che dovrebbero davvero fare. Pertanto, al solo scopo di semplificare i test e la valutazione, è sufficiente che il simulatore dell'universo funzioni solo con una singola particella iniziale. Per mantenere le cose interessanti, supponiamo che questa particella sia il bosone di Higgs recentemente scoperto.
Il tuo universo inizia con nient'altro che un singolo Bosone di Higgs di circa 120 GeV nel mezzo di esso. Per non rendere l'output troppo lungo, facciamo in modo che questo universo ticchetti a soli 10 -25 secondi invece della sua "frequenza di clock normale" di 5,4 × 10 −44 secondi ..
Questo bosone di Higgs decadrà prima o poi poiché ha un'emivita di 1,6 × 10 −22 secondi, quindi ad ogni tick della simulazione, ha una probabilità dello 0,0433% di decadimento. Puoi controllare qui in cosa si decomporrà . Per avere un requisito centrale e semplificato, elencherò i rapporti di ramificazione che dovresti usare:
Esecuzione della simulazione
Ad ogni tick della simulazione, il bosone di Higgs ha una probabilità dello 0,0433% di decomposizione. Se ciò accade, decadrà nelle seguenti particelle, con le probabilità elencate (dovresti usare questi nomi nell'output):
- bottom quark + bottom antiquark (64,8%)
- 2 W bosoni (14,1%)
- 2 gluoni (8.82%)
- tau lepton + antitau lepton (7.04%)
- charm quark + charm antiquark (3.27%)
- 2 bosoni Z (1,59%)
- 2 fotoni (0,223%)
- 1 bosone Z + 1 fotone (0,111%)
- muone + antimuone (0,0244%)
- top quark + top antiquark (0,0216%)
Per un totale del 100%.
Alcune di queste particelle decadono ulteriormente.
Bosone W : emivita di 10-25 secondi, ciò significa una probabilità del 50% di decadere ad ogni tick in una delle seguenti condizioni, con pari probabilità:
- positrone + neutrino
- antimuone + neutrino
- antitau lepton + neutrino
Bosone Z : emivita di 10-25 secondi, ciò significa una probabilità del 50% di decadere ad ogni tick in una delle seguenti condizioni:
- neutrino + antineutrino (20,6%)
- elettrone + positrone (3,4%)
- muone + antimuon (3,4%)
- tau lepton + antitau lepton (3.4%)
- down quark + down antiquark (15,2%)
- strano quark + strano antiquark (15,2%)
- fondo quark + fondo antiquark (15,2%)
- up quark + up antiquark (11,8%)
- charm quark + charm antiquark (11,8%)
quark top : emivita di 5 × 10 -25 secondi, ciò significa una probabilità del 12,95% di decadere ad ogni tick nel seguente, con pari probabilità:
- Bosone W + quark down
- Bosone W + strano quark
- Bosone W + quark inferiore
Naturalmente, presto anche il bosone W decadrà ...
Il primo antiquark si comporta in modo simile al quark top: decade in un bosone W e ad / s / b antiquark.
Tutte le altre particelle (quindi tutte tranne i bosoni Z e W e i quark top) hanno un'emivita più lunga di molti ordini di grandezza, quindi per non ingombrare l'output, sono tutte considerate stabili per la nostra simulazione .
Poiché l'universo è in gran parte vuoto, tutte le particelle avranno abbastanza spazio per se stesse e non interagiranno tra loro. Pertanto tutte le singole particelle sono indipendenti l'una dall'altra in ogni aspetto, comprese le probabilità di scissione.
Produzione:
Ogni segno di spunta della simulazione, devi stampare il contenuto dell'universo simulato in una nuova riga. Per esempio:
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.
L'ordine delle particelle nella linea non è importante. La formattazione, tuttavia, deve essere esattamente come nell'esempio sopra , inclusa la punteggiatura e la pluralizzazione. Se simuli un intero (mini-) universo, dovrebbe apparire bello (e volevo eliminare l'abuso di un requisito di produzione non sufficientemente rigido)
Ogni riga corrisponde a 0,1 yoctosecondi, ma verrai perdonato se il tuo programma impiegherà più tempo a stampare l'output.
La simulazione termina quando rimangono solo particelle "stabili".
punteggio
Si applicano le regole standard per il golf.
Il generatore di numeri casuali può essere pseudo-casuale, ma è necessario seminarlo se la lingua non lo semina per impostazione predefinita. La distribuzione di probabilità del tuo RNG deve essere uniforme.
- Otterrai un bonus del 10% sulla dimensione del codice se il programma accetta un numero intero come input e inizia con tanti bosoni di Higgs.
Eccezione per gli appassionati di macchine di Turing.
Per coloro che hanno il coraggio di tentare la fortuna con una vera macchina Turing o una lingua simile (come Brainfuck), il loro compito è reso più semplice dalle seguenti modifiche alle regole (applicabile solo se la lingua è un derivato Brainfuck o altrimenti un Turing molto semplificato- macchina, incapace di assegnazione, privo di ALU, e i valori sul nastro possono essere incrementati e decrementati solo di uno) :
- I nomi delle particelle sono semplificati in d, s, b, t, u, c per i quark, v per il neutrino, T per tau lepton, m per muone, g per gluone, p per fotone, Z, W e H per il bosoni, - per l'elettrone e + per il positrone. Ad ogni segno di spunta, viene fornito un input con il valore 0 o 1 dall'input standard, a indicare se la prima particella instabile nell'elenco decade o meno.
L'output di esempio diventerà quindi
H
H
H
H
W W
W W
W + n
+ !T n n
SimulateUniverse
funzione integrata?