Одним из замечательных свойств языка, полного Тьюринга, является то, что его можно использовать для написания любой программы, вплоть до симуляции всей Вселенной.
Ваша задача сделать именно это: написать программу, которая имитирует Вселенную .
Примечание: хотя я не сомневаюсь, что вы сможете выполнить эту задачу, в настоящее время у меня нет достаточно свободного времени, чтобы проверить, все ли 10 90 частиц в вашей симуляции делают то, что они действительно должны делать. Следовательно, для упрощения тестирования и оценки достаточно, чтобы симулятор вселенной работал только с одной стартовой частицей. Для интереса, давайте предположим, что эта частица - недавно открытый бозон Хиггса.
Ваша вселенная начинается только с одного бозона Хиггса с энергией приблизительно 120 ГэВ в середине. Чтобы не делать вывод слишком длинным, давайте сделаем тик этой вселенной всего 10–25 секунд вместо его «обычной тактовой частоты» в 5,4 × 10–44 секунд.
Этот бозон Хиггса рано или поздно распадется, так как имеет период полураспада 1,6 × 10–22 секунд, поэтому на каждом такте моделирования он имеет вероятность затухания 0,0433%. Вы можете проверить здесь, во что это превратится . Чтобы иметь центральное и упрощенное требование, я перечисляю коэффициенты ветвления, которые вы должны использовать:
Запуск симуляции
На каждом такте симуляции бозон Хиггса имеет вероятность распада 0,0433%. Если это произойдет, он распадется на следующие частицы с перечисленными вероятностями (вы должны использовать эти имена в выходных данных):
- нижний кварк + нижний антикварк (64,8%)
- 2 Вт бозоны (14,1%)
- 2 глюона (8,82%)
- тау лептон + антитава лептон (7,04%)
- Очарование Кварк + Очарование Антикварк (3,27%)
- 2 Z бозона (1,59%)
- 2 фотона (0,223%)
- 1 Z бозон + 1 фотон (0,111%)
- мюон + антимуон (0,0244%)
- топ-кварк + топ-антикварк (0,0216%)
Всего 100%.
Некоторые из этих частиц будут разлагаться дальше.
W boson : период полураспада 10-25 секунд, это означает 50% -ную вероятность затухания при каждом тике в одно из следующего с равными вероятностями:
- позитрон + нейтрино
- антимуон + нейтрино
- антитэу лептон + нейтрино
Z-бозон : период полураспада 10-25 секунд, это означает 50% -ную вероятность распада на каждом тике в одно из следующего:
- нейтрино + антинейтрино (20,6%)
- электрон + позитрон (3,4%)
- мюон + антимуон (3,4%)
- тау лептон + антитава лептон (3,4%)
- Вниз кварк + Вниз антикварк (15,2%)
- странный кварк + странный антикварк (15,2%)
- нижний кварк + нижний антикварк (15,2%)
- Ап-кварк + Ап-антиквар (11,8%)
- Очарование Кварк + Очарование Антикварк (11,8%)
верхний кварк : период полураспада 5 × 10-25 секунд, это означает 12,95% вероятности затухания при каждом тике в следующем с равными вероятностями:
- W бозон + вниз кварк
- W бозон + странный кварк
- W бозон + нижний кварк
Конечно, W-бозон тоже скоро распадется ...
Верхние антикварковый ведет себя так же , как топ - кварк: он распадается на W - бозон и объявление / с / б антикварк.
Все другие частицы (то есть все, кроме бозонов Z и W и верхних кварков) имеют период полураспада на много порядков больше, поэтому, чтобы не загромождать выходной сигнал, все они считаются стабильными для нашего моделирования .
Поскольку вселенная в основном пуста, всем частицам будет достаточно места для себя, и они не будут взаимодействовать друг с другом. Поэтому все отдельные частицы независимы друг от друга во всех отношениях, включая вероятности расщепления.
Выход:
Каждый тик симуляции, вы должны напечатать содержимое симулируемой вселенной в новую строку. Например:
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.
Порядок частиц в линии не важен. Форматирование, однако, должно быть точно таким же, как в примере выше , включая пунктуацию и множественное число. Если вы моделируете целую (мини) вселенную, она должна выглядеть красиво (и я хотел исключить злоупотребление недостаточно строгим требованием к выводу)
Каждая строка соответствует 0,1 yoctoseconds, но вы будете прощены, если вашей программе потребуется больше времени, чтобы распечатать вывод.
Симуляция заканчивается, когда остаются только «стабильные» частицы.
счет
Применяются стандартные правила игры в гольф.
Генератор случайных чисел может быть псевдослучайным, но вы должны его заполнить, если по умолчанию язык не заполнен. Распределение вероятностей вашего RNG должно быть равномерным.
- Вы получите бонус -10% к размеру кода, если программа примет целое число в качестве входных данных и начнет с таким количеством бозонов Хиггса.
Исключение для любителей машин Тьюринга.
Для тех, кто осмелится попытать счастья с реальной машиной Тьюринга или подобным языком (например, Brainfuck), их задача облегчается благодаря следующим изменениям правил (применимо, только если язык является производным от Brainfuck или иным образом очень упрощенным языком Тьюринга. машина, неспособная к назначению, не имеющая ALU, и значения на ленте могут только увеличиваться и уменьшаться на единицу) :
- Названия частиц упрощены до d, s, b, t, u, c для кварков, v для нейтрино, T для тау-лептона, m для мюона, g для глюона, p для фотона, Z, W и H для бозоны, - для электрона и + для позитрона. На каждом тике вход со значением 0 или 1 предоставляется из стандартного ввода, указывающего, затухает ли первая нестабильная частица в списке или нет.
Таким образом, выходной пример станет
H
H
H
H
W W
W W
W + n
+ !T n n
SimulateUniverse
встроенная функция?