x(n+1) = y(n)  sign(x(n)) * sqrt(abs(b*x(n)c)) y(n+1) = 1 x(n) where b, and c are parameters and sign(x(n)) returns 1 if the argument is positive, 1 otherwise. 
The Controls  
Run  Starts iterating and drawing. 
New Colors  This button generates a new pseudorandom colorLUT 
DotSize  provides for selection of the dot size to be used for painting. Range is from 1..5. 
Randomize b, Randomize c  These controls can be used to manipulate the parameters c and b. When clicked, new random values for the parameters b resp. c, are generated 
Range b, Range c  These edit fields can be used to set the range of the random values for parameters b and c. The input must be in 100 ... 100. Example: If Range is set to 5, then the resulting random numbers will range from 5 ... +5 
Offset b, Offset c  These edit fields allow to define an offset which is added to the
randomly generated parameters b and c. The input must be in 500 ... 500. Example : If Range is 5 and Offset is 50 then the resulting values for b resp. c will range from 45 ... 55 
Scale  This selector defines a scaling factor for the generated pictures. 
Type  This selector allows to chose from the 6 possible formulas used for iteration 
1. x(n+1) = y(n)  sign(x(n)) * sqrt(abs((b * x(n))  c )) 2. x(n+1) = y(n) + sign(x(n)) * sqrt(abs((b * x(n))  c )) 3. x(n+1) = y(n) + sign(x(n)) * sqrt(abs((b * x(n) * x(n)) + c )) 4. x(n+1) = y(n)  sign(x(n)) * (abs((b * x(n))  c )) 5. x(n+1) = y(n)  (sign(x(n)) * cos(abs((b * x(n))  c ))) 6. x(n+1) = y(n)  (sign(x(n)) * log(abs((b * x(n))  c ))) y(n) = 1.0  x(n) ( for all types ) 
If no dots are painted, select dotsize > 1 !! 


England and has been published in the Scientific American's column "Computer Recreations" by A. K. Dewdney. 