One-dimensional cellular automata
var seq = "_###_##_#_#_#_#__#__"
var x = ''
loop {
seq.tr!('01', '_#')
say seq
seq.tr!('_#', '01')
seq.gsub!(/(?<=(.))(.)(?=(.))/, {|s1,s2,s3| s1 == s3 ? (s1 ? 1-s2.to_i : 0) : s2})
(x != seq) && (x = seq) || break
}Output:
_###_##_#_#_#_#__#__
_#_#####_#_#_#______
__##___##_#_#_______
__##___###_#________
__##___#_##_________
__##____###_________
__##____#_#_________
__##_____#__________
__##________________Output:
Last updated
Was this helpful?