Une propriété intéressante d'un langage complet de Turing est qu'il peut être utilisé pour écrire n'importe quel programme, y compris la simulation de l'univers entier.
Votre travail consiste à faire exactement cela: écrire un programme simulant l’Univers .
Remarque: bien que je ne doute pas que vous serez en mesure d'accomplir cette tâche, je ne dispose plus de suffisamment de temps pour vérifier si les 10 90 particules de votre simulation font exactement ce qu'elles devraient faire. Par conséquent, pour simplifier les tests et l'évaluation, il suffit que votre simulateur d'univers ne fonctionne qu'avec une seule particule de départ. Pour garder les choses intéressantes, supposons que cette particule est le boson de Higgs récemment découvert.
Votre univers ne commence qu'avec un seul boson de Higgs d'environ 120 GeV au milieu de celui-ci. Pour que la sortie ne soit pas trop longue, faisons en sorte que cet univers ne tique que de 10 à 25 secondes au lieu de sa "fréquence d'horloge habituelle" de 5,4 × 10 −44 secondes.
Ce boson de Higgs se désintégrera tôt ou tard car il a une demi-vie de 1,6 × 10 −22 secondes. Il a donc une probabilité de décroissance de 0,0433% à chaque tick de la simulation. Vous pouvez vérifier ici en quoi il va se décomposer . Pour avoir une exigence centrale et simplifiée, je liste les ratios de branchement que vous devriez utiliser:
Lancer la simulation
À chaque tick de la simulation, le boson de Higgs a une chance de se décomposer de 0,0433%. Si cela se produit, il se décomposera en particules suivantes, avec les probabilités répertoriées (vous devez utiliser ces noms dans le résultat):
- quark inférieur + antiquark inférieur (64,8%)
- 2 bosons W (14,1%)
- 2 gluons (8,82%)
- tpton lepton + antitau lepton (7,04%)
- charme quark + charme antiquark (3.27%)
- 2 bosons Z (1,59%)
- 2 photons (0,223%)
- 1 boson Z + 1 photon (0,111%)
- muon + antimuon (0,0244%)
- Top quark + Top antiquark (0,0216%)
Pour un total de 100%.
Certaines de ces particules vont se décomposer davantage.
W boson : demi-vie de 10-25 secondes, cela signifie 50% de chance de décroître à chaque cran dans l'une des options suivantes, avec des probabilités égales:
- positron + neutrino
- antimuon + neutrino
- antitau lepton + neutrino
Boson Z : demi-vie de 10-25 secondes, cela signifie 50% de chance de décroissance à chaque tick en une des choses suivantes:
- neutrino + antineutrino (20,6%)
- électron + positron (3.4%)
- muon + antimuon (3,4%)
- tpton lepton + antitau lepton (3,4%)
- quark bas + antiquark bas (15,2%)
- quark étrange + antiquark étrange (15,2%)
- quark inférieur + antiquark inférieur (15,2%)
- up quark + up antiquark (11,8%)
- charme quark + charme antiquark (11,8%)
quark top : demi-vie de 5 × 10 -25 secondes, cela signifie 12,95% de chance de décroissance à chaque cran dans les conditions suivantes, avec des probabilités égales:
- W boson + quark bas
- W boson + quark étrange
- W boson + quark inférieur
Bien sûr, le boson W va bientôt se désintégrer aussi ...
L' antiquark supérieur se comporte de la même manière que le quark top: il se décompose en un boson W et un antiquark ad / s / b.
Toutes les autres particules (donc toutes sauf les bosons Z et W et les quarks supérieurs) ont une demi-vie plus longue de plusieurs ordres de grandeur. Par conséquent, pour ne pas encombrer la sortie, elles sont toutes considérées comme stables pour notre simulation .
Comme l'univers est en grande partie vide, toutes les particules auront assez d'espace pour elles-mêmes et n'interagiront pas les unes avec les autres. Par conséquent, toutes les particules individuelles sont indépendantes les unes des autres à tous égards, y compris les probabilités de division.
Sortie:
Chaque tick de la simulation, vous devez imprimer le contenu de l'univers simulé dans une nouvelle ligne. Par exemple:
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'ordre des particules dans la ligne n'est pas important. La mise en forme doit cependant être identique à celle de l'exemple ci - dessus , y compris la ponctuation et la pluralisation. Si vous simulez un (mini) univers entier, il devrait être joli (Et je voulais éliminer l'abus d'une exigence de sortie pas assez stricte)
Chaque ligne correspond à 0,1 yoctoseconds, mais vous serez pardonné s'il faut plus de temps que votre programme pour imprimer le résultat.
La simulation se termine lorsqu'il ne reste que des particules "stables".
Notation
Les règles de golf standard sont appliquées.
Le générateur de nombres aléatoires peut être pseudo-aléatoire, mais vous devez l'ensemencer si la langue ne l'ensemence pas par défaut. La distribution de probabilité de votre RNG doit être uniforme.
- Vous obtiendrez un bonus de -10% à la taille du code si le programme prend un entier comme entrée et commence avec autant de bosons de Higgs.
Exception pour les amateurs de machines de Turing.
Pour ceux qui osent tenter leur chance avec une machine de Turing réelle ou un langage similaire (comme Brainfuck), leur tâche est facilitée par les modifications de règles suivantes (applicable uniquement si le langage est un dérivé de Brainfuck ou autrement un langage de Turing très simplifié) machine, incapable d’assignation, sans ALU et les valeurs sur la bande ne peuvent être incrémentées et décrémentées que d’une unité) :
- Les noms des particules sont simplifiés en d, s, b, t, u, c pour les quarks, v pour le neutrino, T pour le lepton tau, m pour le muon, g pour le gluon, p pour le photon, Z, W et H pour le bosons, - pour l'électron et + pour le positron. A chaque tick, une entrée avec la valeur 0 ou 1 est fournie à partir de l'entrée standard, elle indique si la première particule instable de la liste se désintègre ou non.
L'exemple de sortie deviendra donc
H
H
H
H
W W
W W
W + n
+ !T n n
SimulateUniverse
fonction intégrée?