# https://[Log in to view URL]
n, it, rule = [int(input()) for _ in range(3)]
def get_steps(n, it, rule):
seen = {}
b = [*map(int, f"{rule:08b}")]
dct = {tuple(map(int, f"{i:03b}")) : b[7 - i] for i in reversed(range(8))}
line = [1 if i == n // 2 else 0 for i in range(n)]
k = 0
while k < it:
hsh = ''.join(map(str, line))
if hsh in seen:
print(hsh)
return k - seen[hsh]
else:
seen[hsh] = k
_line = [0] * n
for i, c in enumerate(line):
t = tuple(line[j % n] for j in (i - 1, i, i + 1))
_line[i] = dct[t]
line = _line
print(hsh, seen)
k += 1
return "BIG"
def cellular_automaton(n, rule, steps):
ans = []
squares = "▯▮" # "▯▮"
b = [*map(int, f"{rule:08b}")]
dct = {tuple(map(int, f"{i:03b}")) : b[7 - i] for i in reversed(range(8))}
line = [1 if i == n // 2 else 0 for i in range(n)]
k = 0
while k < steps:
hsh = ''.join(map(lambda x: squares[x], line))
ans.append(hsh)
_line = [0] * n
for i, c in enumerate(line):
t = tuple(line[j % n] for j in (i - 1, i, i + 1))
_line[i] = dct[t]
line = _line
k += 1
return "\n".join(ans)
r = cellular_automaton(45, 30, 20)
print(r)
# r = get_steps(n, it, rule)
# print(r)
To embed this program on your website, copy the following code and paste it into your website's HTML: