Reversal-Addition Related Systems

Take a number in binary, reverse its digits, and then add it to the original number. Iterating this process produces interesting behavior. This particular system is called "reversal-addition" and was considered by Stephen Wolfram in A New Kind of Science.
This Demonstration looks at generalizations of this system, where additional Mathematica list primitives (Accumulate, Append, Differences, Flatten, ListConvolve, ListCorrelate, Most, Partition, Rest, RotateLeft, RotateRight, and Sort) are used instead of Reverse. Even with these basic operations on lists of 0's and 1's, we immediately recognize complex behavior, demonstrating that small sets of Mathematica primitives are enough to produce such behavior.



  • [Snapshot]
  • [Snapshot]
  • [Snapshot]
  • [Snapshot]


All programs have the structure IntegerDigits[FromDigits[primitive[#], 2] + FromDigits[#1, 2], 2] &; otherwise they are no longer reversal-addition-like systems.
Only commands that produce interesting cases with linear growth are shown. Commands that need more than one argument are introduced with their simplest arguments.
This Demonstration was created during the New Kind of Science Summer School 2008 in Burlington, Vermont.
    • Share:

Embed Interactive Demonstration New!

Just copy and paste this snippet of JavaScript code into your website or blog to put the live Demonstration on your site. More details »

Files require Wolfram CDF Player or Mathematica.