Eine schöne Eigenschaft einer Turing-complete-Sprache ist, dass damit jedes Programm geschrieben werden kann, einschließlich der Simulation des gesamten Universums.
Ihre Aufgabe ist es, genau das zu tun: Schreiben Sie ein Programm, das das Universum simuliert .
Hinweis: Obwohl ich nicht bezweifle, dass Sie diese Aufgabe ausführen können, habe ich heutzutage nicht genügend Zeit, um zu überprüfen, ob alle 10 90 Partikel in Ihrer Simulation das tun, was sie wirklich tun sollten. Daher ist es nur zur Vereinfachung des Testens und der Auswertung ausreichend, wenn Ihr Universumsimulator nur mit einem einzelnen Startpartikel arbeitet. Nehmen wir an, es handelt sich bei diesem Partikel um das kürzlich entdeckte Higgs-Boson.
Ihr Universum beginnt mit nichts anderem als einem einzelnen Higgs-Boson mit ungefähr 120 GeV in der Mitte. Um die Ausgabe nicht zu lang zu machen, lassen wir dieses Universum mit nur 10 -25 Sekunden anstatt seiner "üblichen Taktrate" von 5,4 × 10 -44 Sekunden ticken .
Dieses Higgs-Boson zerfällt früher oder später, da es eine Halbwertszeit von 1,6 × 10 −22 Sekunden hat. Bei jedem Tick der Simulation besteht also eine Wahrscheinlichkeit von 0,0433%, dass es zerfällt. Sie können hier überprüfen , in was es zerfallen wird . Um eine zentrale und vereinfachte Anforderung zu haben, liste ich die Verzweigungsverhältnisse auf, die Sie verwenden sollten:
Simulation ausführen
Bei jedem Tick der Simulation besteht für das Higgs-Boson eine Wahrscheinlichkeit von 0,0433%, dass es verfällt. In diesem Fall zerfällt es mit den angegebenen Wahrscheinlichkeiten in die folgenden Partikel (Sie sollten diese Namen in der Ausgabe verwenden):
- unterer Quark + unterer Antiquark (64,8%)
- 2 W-Bosonen (14,1%)
- 2 Gluonen (8,82%)
- Tau Lepton + Antitau Lepton (7,04%)
- Charm Quark + Charm Antiquark (3,27%)
- 2 Z-Bosonen (1,59%)
- 2 Photonen (0,223%)
- 1 Z-Boson + 1 Photon (0,111%)
- Myon + Antimuon (0,0244%)
- oberer Quark + oberer Antiquark (0,0216%)
Für insgesamt 100%.
Einige dieser Partikel werden weiter zerfallen.
W Boson : Halbwertszeit von 10 -25 Sekunden, dies bedeutet eine 50% ige Chance, bei gleicher Wahrscheinlichkeit bei jedem Tick in eine der folgenden zu zerfallen:
- Positron + Neutrino
- Antimuon + Neutrino
- Antitau-Lepton + Neutrino
Z-Boson : Halbwertszeit von 10 -25 Sekunden, dies bedeutet eine 50% ige Chance, bei jedem Tick in eine der folgenden zu zerfallen:
- Neutrino + Antineutrino (20,6%)
- Elektron + Positron (3,4%)
- Myon + Antimuon (3,4%)
- Tau Lepton + Antitau Lepton (3,4%)
- Daunenquark + Daunenantiquark (15,2%)
- seltsamer Quark + seltsamer Antiquark (15,2%)
- unterer Quark + unterer Antiquark (15,2%)
- up quark + up antiquark (11,8%)
- Charm Quark + Charm Antiquark (11,8%)
Top-Quark : Halbwertszeit von 5 × 10 -25 Sekunden, dies bedeutet eine 12,95% ige Chance, bei jeder Zecke mit gleicher Wahrscheinlichkeit in die folgenden zu zerfallen:
- W Boson + Down Quark
- W Boson + seltsamer Quark
- W Boson + Bottom Quark
Natürlich wird der W-Boson auch bald zerfallen ...
Das Top-Antiquark verhält sich ähnlich wie das Top-Quark: Es zerfällt in ein W-Boson und ein ad / s / b-Antiquark.
Alle anderen Teilchen (also alle außer den Z- und W-Bosonen und den Top-Quarks) haben eine um viele Größenordnungen längere Halbwertszeit. Damit die Ausgabe nicht gestört wird, werden sie alle für unsere Simulation als stabil angesehen .
Da das Universum weitgehend leer ist, haben alle Teilchen genug Platz für sich und interagieren nicht miteinander. Daher sind alle einzelnen Partikel in jeder Hinsicht unabhängig voneinander, einschließlich der Aufspaltungswahrscheinlichkeiten.
Ausgabe:
Bei jedem Tick der Simulation müssen Sie den Inhalt des simulierten Universums in eine neue Zeile drucken. Zum Beispiel:
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.
Die Reihenfolge der Partikel in der Linie ist nicht wichtig. Die Formatierung muss jedoch genau wie im obigen Beispiel sein , einschließlich Interpunktion und Pluralisierung. Wenn Sie ein ganzes (Mini-) Universum simulieren, sollte es gut aussehen (und ich wollte den Missbrauch einer nicht ausreichend strengen Ausgabeanforderung vermeiden)
Jede Zeile entspricht 0,1 Yoctosekunden, aber es wird Ihnen verziehen, wenn Ihr Programm länger braucht, um die Ausgabe zu drucken.
Die Simulation endet, wenn nur noch "stabile" Partikel übrig sind.
Wertung
Es gelten die Standard-Code-Golfregeln.
Der Zufallszahlengenerator kann pseudozufällig sein, aber Sie müssen ihn setzen, wenn die Sprache ihn nicht standardmäßig setzt. Die Wahrscheinlichkeitsverteilung Ihres RNG muss gleichmäßig sein.
- Sie erhalten einen Bonus von -10% auf die Codegröße, wenn das Programm eine Ganzzahl als Eingabe verwendet und mit so vielen Higgs-Bosonen beginnt.
Ausnahme für Turingmaschinenbegeisterte.
Für diejenigen, die es wagen, ihr Glück mit einer tatsächlichen Turing-Maschine oder einer ähnlichen Sprache (wie Brainfuck) zu versuchen , wird ihre Aufgabe durch die folgenden Regeländerungen erleichtert (nur anwendbar, wenn die Sprache ein Brainfuck-Derivat oder auf andere Weise ein sehr vereinfachtes Turing-Derivat ist). Maschine, nicht zuweisbar, keine ALU, und Werte auf dem Band können nur um eins erhöht und verringert werden) :
- Die Teilchennamen werden vereinfacht zu d, s, b, t, u, c für die Quarks, v für das Neutrino, T für das Tau-Lepton, m für das Myon, g für das Gluon, p für das Photon, Z, W und H für das Bosonen, - für das Elektron und + für das Positron. Bei jedem Tick wird eine Eingabe mit dem Wert 0 oder 1 aus der Standardeingabe bereitgestellt, die angibt, ob das erste instabile Partikel in der Liste zerfällt oder nicht.
Die Beispielausgabe wird daher
H
H
H
H
W W
W W
W + n
+ !T n n
SimulateUniverse
eingebaute Funktion?