Фон
Так, фізика гризків - це реальна річ . Ідея полягає в тому, щоб побудувати нову теорію фізики, використовуючи лише рядки бітів, які розвиваються за імовірнісним правилом ... чи щось. Незважаючи на те, що прочитав про це пару паперів, я все ще досить розгублений. Тим не менше, всесвітній бітстринг створює хороший гольф з невеликим кодом.
Програма Всесвіту
Фізика бітстрингу відбувається в так званій програмній всесвіті . На кожному кроці еволюції Всесвіту є кінцевий список L
біткових рядків деякої довжини k
, починаючи з двоелементного списку, [10,11]
де k = 2
. Один часовий крок обробляється наступним чином (у псевдокоді, подібному до Python).
A := random element of L
B := random element of L
if A == B:
for each C in L:
append a random bit to C
else:
append the bitwise XOR of A and B to L
Всі випадкові вибори рівномірно випадкові та незалежні один від одного.
Приклад
Приклад еволюції 4 кроків може виглядати наступним чином. Почніть з початкового списку L
:
10
11
Ми вибираємо випадковим чином, A := 10
і B := 10
це той самий рядок, а це означає, що нам потрібно розширити кожну рядок L
випадковим бітом:
101
110
Далі ми вибираємо A := 101
і B := 110
, оскільки вони не рівні, додаємо їх XOR до L
:
101
110
011
Потім ми вибираємо A := 011
і B := 110
, і знову додаємо їх XOR:
101
110
011
101
Нарешті, ми вибираємо A := 101
(останній рядок) і B := 101
(перший рядок), які рівні, тому розширюємо випадковими бітами:
1010
1100
0111
1010
Завдання
Ваше завдання - взяти t
як вхідне невід’ємне ціле число , імітувати всесвіт програми на t
етапі часу, а також повернути або роздрукувати отриманий список L
. Зауважте, що t = 0
результати виходять з початкового списку [10,11]
. Ви можете виводити L
у вигляді списку цілих чисел, списків булевих значень або списку рядків; якщо висновок переходить до STDOUT, ви також можете надрукувати біт-рядки по одному в рядку у певному розумному форматі. Порядок бітстрингу є значним; зокрема, початковий список не може бути [11,10]
, [01,11]
або що - небудь подібне. І функції, і повні програми прийнятні, стандартні лазівки заборонені, а найнижчий байт виграє.