|
|
A105153
|
|
Consider trajectory of n under repeated application of map k -> A105025(k); a(n) = length of cycle.
|
|
2
|
|
|
1, 1, 2, 2, 1, 2, 1, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 1, 4, 4, 4, 1, 4, 4, 4, 1, 4, 4, 4, 1, 4, 4, 4, 4, 8, 4, 4, 4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 8, 4, 4, 8, 4, 4, 4, 4, 8, 2, 16, 8, 4, 2, 4, 8, 16, 2, 16, 8, 4, 2, 4, 8, 16, 2, 16, 8, 4, 2, 4, 8, 16, 2, 16, 8, 4, 2, 4, 8, 16, 2, 16, 8, 4, 2
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,3
|
|
COMMENTS
|
Why is this always a power of 2?
|
|
LINKS
|
David Applegate, Benoit Cloitre, Philippe Deléham and N. J. A. Sloane, Sloping binary numbers: a new sequence related to the binary numbers [pdf, ps].
|
|
PROG
|
(C++) #include <iostream> #include <vector> #include <set> using namespace std ; int main(int argc, char *argv[]) { int kmax = 8 ; vector<int> a105025; a105025.push_back(0) ; a105025.push_back(1) ; for(int k=1 ; k < kmax ; k++) { int bstrt = 1 << k ; for(int j=0 ; j < bstrt ; j++) { int s = bstrt ; for(int i= k-1 ; i >=0 ; i--) s += (bstrt+j+k-i) & ( 1<<i) ; a105025.push_back(s) ; /* cout << s << endl ; */ } } for(int n=0; n < a105025.size() ; n++) { int nrep = n ; set<int> traj ; while ( traj.find(nrep) == traj.end() ) { traj.insert(nrep) ; if ( nrep < a105025.size() ) nrep = a105025[nrep] ; else break ; } cout << traj.size() << ", " ; } cout << endl ; return 0 ; } - R. J. Mathar, Aug 10 2007
(Haskell)
a105153 n = t [n] where
t xs@(x:_) | y `elem` xs = length xs
| otherwise = t (y : xs) where y = a105025 x
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,easy,base
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|