Una buena propiedad de un lenguaje completo de Turing es que puede usarse para escribir cualquier programa, hasta e incluyendo la simulación de todo el Universo.
Tu trabajo es hacer exactamente eso: escribir un programa que simule el Universo .
Nota: aunque no dudo que pueda realizar esta tarea, hoy en día no tengo suficiente tiempo libre para verificar si las 10 90 de las partículas en su simulación hacen lo que realmente deberían hacer. Por lo tanto, solo para simplificar las pruebas y la evaluación, es suficiente si su simulador de universo solo funciona con una sola partícula inicial. Para mantener las cosas interesantes, supongamos que esta partícula es el Bosón de Higgs recientemente descubierto.
Su universo comienza con nada más que un solo Bosón de Higgs de aproximadamente 120 GeV en el medio. Para no hacer que la salida sea demasiado larga, hagamos que este universo funcione en solo 10-25 segundos en lugar de su "frecuencia de reloj habitual" de 5.4 × 10 −44 segundos.
Este bosón de Higgs se descompondrá tarde o temprano, ya que tiene una vida media de 1.6 × 10 −22 segundos, por lo que en cada tic de la simulación, tiene un 0.0433% de probabilidad de descomposición. Puede verificar aquí en qué se descompondrá . Para tener un requisito central y simplificado, enumero las relaciones de ramificación que debe usar:
Ejecutando la simulación
En cada tic de la simulación, el bosón de Higgs tiene una probabilidad de descomposición del 0.0433%. Si eso sucede, se descompondrá en las siguientes partículas, con las probabilidades enumeradas (debe usar estos nombres en la salida):
- quark bottom + antiquark bottom (64.8%)
- 2 bosones W (14.1%)
- 2 gluones (8.82%)
- tau lepton + antitau lepton (7.04%)
- quark encanto + antiquark encanto (3.27%)
- 2 bosones Z (1.59%)
- 2 fotones (0.223%)
- 1 bosón Z + 1 fotón (0.111%)
- muón + antimuón (0.0244%)
- top quark + top antiquark (0.0216%)
Para un total de 100%.
Algunas de estas partículas se deteriorarán aún más.
Bosón W : vida media de 10-25 segundos, esto significa una probabilidad del 50% de decaer en cada tic en uno de los siguientes, con las mismas probabilidades:
- positrón + neutrino
- antimuon + neutrino
- antitau lepton + neutrino
Bosón Z : vida media de 10-25 segundos, esto significa una probabilidad del 50% de descomponerse en cada tic en uno de los siguientes:
- neutrino + antineutrino (20,6%)
- electrón + positrón (3.4%)
- muón + antimuón (3.4%)
- tau lepton + antitau lepton (3.4%)
- abajo quark + abajo antiquark (15.2%)
- extraño quark + extraño antiquark (15.2%)
- quark bottom + antiquark bottom (15.2%)
- up quark + up antiquark (11.8%)
- quark encanto + antiquark encanto (11.8%)
quark top : vida media de 5 × 10-25 segundos, esto significa una probabilidad del 12.95% de decaer en cada tic en lo siguiente, con las mismas probabilidades:
- W boson + quark down
- W bosón + quark extraño
- W bosón + quark bottom
Por supuesto, el bosón W también decaerá pronto ...
El antiquark superior se comporta de manera similar al quark top: se descompone en un bosón W y un antiquark ad / s / b.
Todas las demás partículas (por lo que todas, excepto los bosones Z y W y los quarks superiores) tienen una vida media de muchos órdenes de magnitud más larga, por lo que para no saturar la salida, todas se consideran estables para nuestra simulación .
Como el universo está en gran parte vacío, todas las partículas tendrán suficiente espacio para sí mismas y no interactuarán entre sí. Por lo tanto, todas las partículas individuales son independientes entre sí en todos los aspectos, incluidas las probabilidades de división.
Salida:
Cada paso de la simulación, debe imprimir el contenido del universo simulado en una nueva línea. Por ejemplo:
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.
El orden de las partículas en la línea no es importante. Sin embargo, el formato debe ser exactamente como en el ejemplo anterior , incluida la puntuación y la pluralización. Si simula un universo (mini-) completo, debería verse bien (y quería eliminar el abuso de un requisito de salida no lo suficientemente estricto)
Cada línea corresponde a 0.1 yoctosegundos, pero se le perdonará si su programa tarda más que eso en imprimir la salida.
La simulación finaliza cuando solo quedan partículas "estables".
Puntuación
Se aplican reglas estándar de golf de código.
El generador de números aleatorios puede ser pseudoaleatorio, pero debe sembrarlo si el idioma no lo hace de manera predeterminada. La distribución de probabilidad de su RNG debe ser uniforme.
- Obtendrá una bonificación del -10% al tamaño del código si el programa toma un número entero como entrada y comienza con esa cantidad de bosones de Higgs.
Excepción para entusiastas de las máquinas de Turing.
Para aquellos que se atreven a probar suerte con una máquina de Turing real o un idioma similar (como Brainfuck), su tarea se hace más fácil por los siguientes cambios de reglas (solo aplicable si el idioma es un derivado de Brainfuck o de otra manera un Turing muy simplificado) máquina, incapaz de asignación, que carece de una ALU, y los valores en la cinta solo pueden incrementarse y disminuirse en uno) :
- Los nombres de las partículas se simplifican a d, s, b, t, u, c para los quarks, v para el neutrino, T para tau lepton, m para muón, g para gluón, p para fotón, Z, W y H para el bosones, - para el electrón y + para el positrón. En cada marca, se proporciona una entrada con el valor de 0 o 1 de la entrada estándar, indicando si la primera partícula inestable en la lista decae o no.
Por lo tanto, la salida de ejemplo se convertirá
H
H
H
H
W W
W W
W + n
+ !T n n
SimulateUniverse
función incorporada?