Arka fon
Evet, bit fiziği fiziği gerçek bir şeydir . Buradaki fikir, yalnızca olasılıklı bir kural altında gelişen bit dizgilerini veya başka bir şeyi kullanarak yeni bir fizik teorisi inşa etmektir. Bununla ilgili birkaç makale okuduğum halde hala kafam oldukça karıştı. Bununla birlikte, bit eşlik eden evren güzel bir küçük kod golfü yaratır.
Program Evreni
Bitstring fiziği, sözde program evreninde gerçekleşir . Evrenin evrimi Her adımda, sonlu bir listesi var L
bazı uzunlukta bit katarı içinde k
iki eleman listesi ile başlayan [10,11]
nerede k = 2
. Bir zaman adımı aşağıdaki gibi işlenir (Python benzeri sahte kodda).
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
Tüm rastgele seçimler eşit olarak rasgele ve birbirlerinden bağımsızdır.
Örnek
4 adımdan oluşan bir örnek evrimi aşağıdakine benzeyebilir. İlk listeden başlayın L
:
10
11
Rastgele seçiyoruz A := 10
ve B := 10
aynı satır olan hangisini seçiyoruz , yani her dizeyi L
rastgele bir bitle genişletmemiz gerekiyor :
101
110
Sonra, biz seçiyoruz A := 101
ve B := 110
eşit olmadıkları için XOR'larını şuna ekledik L
:
101
110
011
Daha sonra, seçim A := 011
ve B := 110
ve yine kendi XOR ekleyin:
101
110
011
101
Son olarak, eşit olan A := 101
(son satır) ve B := 101
(ilk satır) seçimini yaparız , bu nedenle rastgele bitlerle genişletiriz:
1010
1100
0111
1010
Görev
Göreviniz t
girdi olarak negatif olmayan bir tamsayı almak , program evrenini t
timesteps için simüle etmek ve sonuç listesini döndürmek veya yazdırmaktır L
. t = 0
İlk listede sonuçlandığını unutmayın [10,11]
. Bir L
tamsayı listesi, boolean değer listesi veya bir dize listesi olarak çıktı alabilirsiniz; Eğer çıktı STDOUT'a giderse, bitstrings'i her satıra bir tane olacak şekilde basabilirsiniz. Bit dizelerinin sırası önemlidir; Özellikle, ilk liste olamaz [11,10]
, [01,11]
ya da böyle bir şey. Hem fonksiyonlar hem de tam programlar kabul edilebilir, standart boşluklara izin verilmez ve en düşük bayt sayısı kazanır.