login
A177045
The ordering of expressions built from numbers 2 and exponentiations according to their numeric values.
0
1, 2, 3, 4, 7, 8, 9, 5, 6, 17, 18, 21, 22, 23, 15, 16, 19, 20, 49, 50, 51, 59, 60, 63, 64, 65, 43, 44, 45, 46, 47, 48, 57, 58, 61, 62, 149, 150, 153, 154, 155, 181, 182, 183, 191, 192, 195, 196, 197, 136, 137, 138, 139, 140, 141, 147, 148, 151, 152, 175, 176, 177, 178, 179, 180, 189, 190, 193, 194, 478, 479, 480, 488, 489, 492, 493, 494, 578, 579, 582, 583, 584, 610, 611, 612, 620, 621, 624, 625, 626, 12, 13, 14, 132, 133, 134, 135, 439, 440, 441
OFFSET
1,2
COMMENTS
Let S be the sequence of all possible expressions built from numbers 2 and exponentiations (^), sorted according to their natural structural ordering (2, 2^2, 2^(2^2), (2^2)^2, 2^(2^(2^2)), 2^((2^2)^2) and so on - see the exact definition in Haskell below).
Let S' be S stable-sorted according to the numeric values of its elements in ascending order (the stable sorting is a sorting that keeps the order of elements with equal keys - so 2^(2^2) and (2^2)^2 will be kept in the original order).
This sequence is S' where each expression is replaced with its original index (1-based) in S; it is a permutation of the natural numbers sequence.
PROG
(Haskell) data Expr = Two | Expr :^: Expr
-- needed only for presentation
instance Show Expr where show Two = "2"; show (x :^: y) = "(" ++ show x ++ "^" ++ show y ++ ")"
ofSize 1 = [Two]
ofSize n = [left :^: right | k <- [1..n-1], left <- ofSize k, right <- ofSize (n-k)]
-- this defines the S sequence
s = [e | n <- [1..], e <- ofSize n]
CROSSREFS
Sequence in context: A297164 A207800 A109436 * A241783 A039254 A039195
KEYWORD
nonn
AUTHOR
EXTENSIONS
First 100 terms from D. S. McNeil, May 04 2010
STATUS
approved