[Edu-sig] more mathematics for the digital age....

kirby urner kirby.urner at gmail.com
Wed Oct 29 17:20:27 CET 2014


'''
(c) MIT License by K. Urner

More playing around with NKS for a Gnu Math class using Python
NKS = new kind of science (Wolfram) i.e. cellular automata (CA)
'''

def make_rule(n):
    """takes 0-255 and returns rule dict"""
    the_rule = {}
    values = "{:08b}".format(n)
    for x in range(8):
        key = "{:03b}".format(x)
        the_rule[key] = values[x]
    return the_rule

def transcribe(s, r):
    """takes a row s and returns a row based on rule r"""
    n = 0
    max = len(s)
    out = ''
    while n < max-2:
        triple = s[n:n+3]
        out += r[triple]
        n += 1
    return out

def generations(s, r, n=1):
    """applies rule r to transcribed output, starting with s, n times"""
    for _ in range(n):
        row = transcribe(s, r)
        s = row
        yield row


rule130 = make_rule(130)
top = '000000000000010000000000000'

the_gen = generations(top, rule130, 10)

dots=0
print(top)
while True:
    dots += 1
    try:
        print("."*dots, next(the_gen), sep="")
    except:
        break
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20141029/e4365666/attachment.html>


More information about the Edu-sig mailing list