Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def cellular_automaton(string, pattern_number, generations):
- patterns = {}
- pattern_list = ['...', '..x', '.x.','.xx','x..', 'x.x', 'xx.','xxx']
- n = len(string)
- for i in range(7,-1, -1):
- if pattern_number/(2**i) == 1:
- patterns[pattern_list[i]] = 'x'
- pattern_number = pattern_number - 2**i
- else:
- patterns[pattern_list[i]] = '.'
- for j in range(0, generations):
- new_string = ''
- for i in range(0, n):
- pattern = string[i-1] + string[i] + string[(i+1)%n]
- new_string = new_string + patterns[pattern]
- string = new_string
- return new_string
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement