Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,21 @@
|
|||
def eca(cells, rule):
|
||||
lencells = len(cells)
|
||||
c = "0" + cells + "0" # Zero pad the ends
|
||||
rulebits = '{0:08b}'.format(rule)
|
||||
neighbours2next = {'{0:03b}'.format(n):rulebits[::-1][n] for n in range(8)}
|
||||
yield c[1:-1]
|
||||
while True:
|
||||
c = ''.join(['0',
|
||||
''.join(neighbours2next[c[i-1:i+2]]
|
||||
for i in range(1,lencells+1)),
|
||||
'0'])
|
||||
yield c[1:-1]
|
||||
|
||||
if __name__ == '__main__':
|
||||
lines, start, rules = 50, '0000000001000000000', (90, 30, 122)
|
||||
zipped = [range(lines)] + [eca(start, rule) for rule in rules]
|
||||
print('\n Rules: %r' % (rules,))
|
||||
for data in zip(*zipped):
|
||||
i = data[0]
|
||||
cells = data[1:]
|
||||
print('%2i: %s' % (i, ' '.join(cells).replace('0', '.').replace('1', '#')))
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
def eca_wrap(cells, rule):
|
||||
lencells = len(cells)
|
||||
rulebits = '{0:08b}'.format(rule)
|
||||
neighbours2next = {tuple('{0:03b}'.format(n)):rulebits[::-1][n] for n in range(8)}
|
||||
c = cells
|
||||
while True:
|
||||
yield c
|
||||
c = ''.join(neighbours2next[(c[i-1], c[i], c[(i+1) % lencells])] for i in range(lencells))
|
||||
|
||||
if __name__ == '__main__':
|
||||
lines, start, rules = 50, '0000000001000000000', (90, 30, 122)
|
||||
zipped = [range(lines)] + [eca_wrap(start, rule) for rule in rules]
|
||||
print('\n Rules: %r' % (rules,))
|
||||
for data in zip(*zipped):
|
||||
i = data[0]
|
||||
cells = data[1:]
|
||||
print('%2i: %s' % (i, ' '.join(cells).replace('0', '.').replace('1', '#')))
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
def _notcell(c):
|
||||
return '0' if c == '1' else '1'
|
||||
|
||||
def eca_infinite(cells, rule):
|
||||
lencells = len(cells)
|
||||
rulebits = '{0:08b}'.format(rule)
|
||||
neighbours2next = {'{0:03b}'.format(n):rulebits[::-1][n] for n in range(8)}
|
||||
c = cells
|
||||
while True:
|
||||
yield c
|
||||
c = _notcell(c[0])*2 + c + _notcell(c[-1])*2 # Extend and pad the ends
|
||||
|
||||
c = ''.join(neighbours2next[c[i-1:i+2]] for i in range(1,len(c) - 1))
|
||||
#yield c[1:-1]
|
||||
|
||||
if __name__ == '__main__':
|
||||
lines, start, rules = 20, '1', (90, 30, 122)
|
||||
zipped = [range(lines)] + [eca_infinite(start, rule) for rule in rules]
|
||||
print('\n Rules: %r' % (rules,))
|
||||
for data in zip(*zipped):
|
||||
i = data[0]
|
||||
cells = ['%s%s%s' % (' '*(lines - i), c, ' '*(lines - i)) for c in data[1:]]
|
||||
print('%2i: %s' % (i, ' '.join(cells).replace('0', '.').replace('1', '#')))
|
||||
Loading…
Add table
Add a link
Reference in a new issue