Latar Belakang
Ya, fisika bitstring adalah hal yang nyata . Idenya adalah untuk membangun teori fisika baru menggunakan hanya serangkaian bit yang berevolusi di bawah aturan probabilistik ... atau sesuatu. Meskipun membaca beberapa makalah tentang itu, saya masih cukup bingung. Namun, alam semesta bitstring membuat kode golf kecil yang menyenangkan.
Program Universe
Fisika Bitstring terjadi di alam semesta yang disebut program . Pada setiap langkah evolusi alam semesta, ada daftar L
bitstring yang terbatas dengan panjang tertentu k
, dimulai dengan daftar dua elemen di [10,11]
mana k = 2
. Satu timestep diproses sebagai berikut (dalam pseudocode mirip-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
Semua pilihan acak adalah acak seragam dan tidak tergantung satu sama lain.
Contoh
Contoh evolusi 4 langkah mungkin terlihat seperti berikut. Mulai dengan daftar awal L
:
10
11
Kami memilih secara acak A := 10
dan B := 10
, yang merupakan baris yang sama, yang berarti kita perlu memperluas setiap string L
dengan bit acak:
101
110
Selanjutnya, kita pilih A := 101
dan B := 110
, dan karena mereka tidak sama, kami menambahkan XOR mereka ke L
:
101
110
011
Kemudian, kita memilih A := 011
dan B := 110
, dan menambahkan XOR mereka lagi:
101
110
011
101
Akhirnya, kami memilih A := 101
(baris terakhir) dan B := 101
(baris pertama), yang sama, jadi kami memperluas dengan bit acak:
1010
1100
0111
1010
Tugas
Tugas Anda adalah mengambil integer nonnegatif t
sebagai input, mensimulasikan semesta program untuk t
timesteps, dan mengembalikan atau mencetak daftar yang dihasilkan L
. Perhatikan bahwa t = 0
hasil dalam daftar awal [10,11]
. Anda dapat menampilkan L
sebagai daftar daftar bilangan bulat, daftar daftar nilai boolean atau daftar string; jika output beralih ke STDOUT, Anda juga dapat mencetak bitstrings satu per baris dalam beberapa format yang masuk akal. Urutan bitstring signifikan; khususnya, daftar awal tidak boleh [11,10]
,[01,11]
atau semacamnya. Baik fungsi dan program penuh dapat diterima, celah standar tidak diizinkan, dan jumlah byte terendah menang.