挑战
您将要编写一个完整的程序,该程序使用来自STDIN的七个数字,并将元胞自动机(CA)的二维历史记录打印到STDOUT。这是代码高尔夫。
输入格式 输入将是七个整数/字符串,以逗号分隔。第一个数字是根据Wolfram代码的规则编号(每个规则的标准名称)。第二个是初始启动配置。第三个和第四个描述了什么模式以及应将多少模式附加到启动配置的左侧。作为填充。第五和第六在右侧也是如此。最后一个数字是运行模拟的世代数。
因此,输入示例为90,11,0,4,0,4,5
。这应该告诉您的程序您正在运行规则90。它还应该告诉程序您希望初始配置是11
在字符串的0
两端都附加4次,因此实际的开始模式是0000110000
。它还告诉您的程序将此模拟运行5代。
输出您的程序应该打印每一代的整个单元格数组(用换行符分隔),以便输出是CA的时空图。对于每一代,根据作为输入提供的规则,每个单元的状态由其状态和紧靠左侧和右侧的单元的状态确定。模拟应围绕边缘。首先打印的应该是gen的起始数组。0。
输入90,11,0,4,0,4,5
应尽可能精确地产生以下输出。
0000110000
0001111000
0011001100
0111111110
1100000011
0110000110
请注意,起始状态不包括在五代中。还要注意,模拟环绕着边缘。
更多例子
输入:
184,1100,01,2,01,1,4
输出:
0101110001
1011101000
0111010100
0110101010
0101010101
输入:
0,1011,1,0,0,1,2
输出:
10110
00000
00000