The noted computer scientist Donald Knuth has conjectured that every
positive integer can be obtained by beginning with a single 3 and
applying some combination of the factorial, square root, and floor
functions.

Recall that the factorial function is n! = n*(n-1)*(n-2)*...3*2*1, and for this problem, we insist that n be an integer. floor(x) gives the greatest integer less than or equal to x. For example, we can write

to obtain a Knuth expression for 26.floor(sqrt((3!)!)) = floor(sqrt(6!)) = floor(sqrt(720)) = floor(26.83...) = 26

One could spend a pleasant afternoon manually creating Knuth expressions for small integers with a hand calculator. But it is much more fun to write a perl program to do this for you. The challenge is to write an elegant, fast, or golfish program that finds Knuth expressions for the integers 1 to 10 inclusive.

I'll post my solution in a day or so.

-Mark

Back to
Meditations