Advertisement
Guest User

Cellular automaton

a guest
Nov 22nd, 2014
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.67 KB | None | 0 0
  1. def cellular_automaton(string, pattern_number, generations):
  2.     patterns = {}
  3.     pattern_list = ['...', '..x', '.x.','.xx','x..', 'x.x', 'xx.','xxx']
  4.     n = len(string)
  5.    
  6.     for i in range(7,-1, -1):
  7.         if pattern_number/(2**i) == 1:
  8.             patterns[pattern_list[i]] = 'x'
  9.             pattern_number = pattern_number - 2**i
  10.         else:
  11.             patterns[pattern_list[i]] = '.'
  12.            
  13.     for j in range(0, generations):
  14.         new_string = ''
  15.         for i in range(0, n):
  16.             pattern = string[i-1] + string[i] + string[(i+1)%n]
  17.             new_string = new_string + patterns[pattern]
  18.         string = new_string
  19.     return new_string
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement