Computing

Why eight yes/no answers can draw a fractal, make noise or compute: elementary cellular automata

Rule 30 cellular automaton: a triangle of lime squares that turns from a tidy edge into noise, above the title
30seconds
The 30-second version

Take a row of lit and dark squares and repeat one tiny rule to make the next row: look at a square and its two neighbours, then decide if it is lit. There are only 256 such rules, yet Rule 90 draws a perfect fractal, Rule 30 makes noise good enough to generate random numbers, and Rule 110 is proven able to run any program.

Flip the eight answers of the rule yourself, tap the top row to seed it, and watch order, chaos and computation appear from almost nothing.

Deep dive · 3 min
Deep dive · 3 min

More in Computing

View all →
Why one flipped bit can be found and fixed: Hamming's error-correcting code A single flipped bit can turn a good file into garbage, yet a machine can find and repair it without ever seeing the original. In 1950 Richard Hamming, tired… Computing4 min read Why swapping cards at random is not a fair shuffle: Fisher–Yates and the 27 paths Shuffling three cards by swapping each one with a random card from the whole row looks fair, but it is not. It makes 3 × 3 × 3 = 27 equally likely paths for… Computing4 min read How to find one name among a billion in 30 looks: binary search Pick a number from 1 to 1,000,000 and you can find it in at most 20 yes-or-no questions. The trick is binary search: look in the middle of a sorted list, throw… Computing4 min read Why common letters get short codes in a ZIP file: Huffman coding ASCII spends 8 bits on every letter, whether it is a common e or a rare z. In 1951 a graduate student, David Huffman, found a way to give frequent symbols… Computing4 min read How a computer finds one flipped bit and fixes it: Hamming's code A bit can flip in memory, on a disk or in a radio signal, and nothing tells you which one went wrong. In 1950 Richard Hamming published a code that finds the… Computing4 min read Why 0.1 + 0.2 isn't 0.3: flip the 64 bits a computer uses for decimals Type 0.1 + 0.2 into almost any programming language and you get 0.30000000000000004. Nothing is broken. Computers count in powers of two, and a tenth is an… Computing3 min read