背景
是的,位串物理是真实的东西。这个想法是用仅在概率规则或某些规则下演化的比特串来构造新的物理学理论。尽管阅读了几篇有关它的论文,但我还是很困惑。但是,比特串世界使高尔夫成为一个不错的小代码。
程序宇宙
位串物理发生在所谓的程序宇宙中。在宇宙的演化的每个步骤中,存在有限列表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作为输入,模拟程序Universe的t时间步长,并返回或打印结果列表L。请注意,t = 0结果将出现在初始列表中[10,11]。您可以输出L为整数列表,布尔值列表或字符串列表。如果输出到STDOUT,则还可以以某种合理的格式每行打印一位。位串的顺序很重要。特别是,初始列表不能[11,10],[01,11]或者类似的东西。函数和完整程序都可以接受,不允许标准漏洞,并且最低字节数为准。