A blast from the past

Hailstone numbers

I was researching Collatz sequences for a tutorial I was writing on lambda expressions in Haskell when I remembered an old article from Scientific American about “hailstone numbers” that I read back in high school. Having found that article, I went looking for some of my other old favorites from the mid 80’s.

Hailstone numbers

During high school I was fasicnated by algorithms. This is a peculiar one because it involves a conjecture that hasn’t been proven. The algorithm is this: take any initial whole number value. If the number is even, divide it by 2. If it is odd, multiply it by 3 and add 1. Continue the same process until reaching 1. The sequence thus formed begins with the initial value and ends with 1. The length of this sequence is highly variable. The conjecture itself asserts that all sequences terminate with one.

The paper presented algorithms in BASIC and some version of assembly language, probably 8086. I did a lot of work in Z80 assembler back in high school and the registers don’t look familiar to me - hence my guess about 8086. The comment about BASIC being intolerably slow is funny. (You think?)

The author also talks about the possibility of using the transformations in a backwards direction as a means of gaining insight about a general proof. The problem, of course as he acknowledges, is that the algorithm is deterministic in the forward direction but ambiguous in the backwards direction.

Turning fine art into drivel

This was a fascinating and silly article that was built around Sir Arthur Eddington’s conjecture about probabilities: “If an army of monkeys were strumming on typewriters, they might write all the books in the British Museum.” The author, Brian Hayes, goes on to talk about the statistics of language and builds an algorithmic approach to generating text based on the frequency of character frequencies of n length in a source text. He goes on to experiment with combining source texts, performing mathemical transforms on the statistics, etc.

I spent hours recreating these algorithms, playing around with them, optimizing them (well as best as you could back in the 1980’s). It was all very silly; but it reinforced for me a fascination with language and free-range experimentation.

Mandelbrot

This was another article that was fascinating in the day. The utility of fractals in computer generated graphics was barely appreciated when this article first came out. In the last sentence of the paper, there’s a prescient comment about this utility: “In a future column I hope to report on some of the amazing cinematic effects produced in the Lucasfilm laboratory.” For a while, I was so fascinated by the beauty of fractals, particularly the mysterious Mandelbrot set, that bought his textbook and played around with writing a fractal graphics generator on the Mac. This was long before OS X, Objective-C, etc. I think it must have been in Pascal.

The applications of fractals are well-known now; but at the time it was cool stuff. There are still Mac-based fractal generators and explorers out there. I just checked Fraqtive which looks pretty cool.