login
Consider trajectory of n under repeated application of map k -> A105025(k); a(n) = length of cycle.
2

%I #15 Sep 08 2013 19:54:50

%S 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,

%T 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,

%U 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

%N Consider trajectory of n under repeated application of map k -> A105025(k); a(n) = length of cycle.

%C Why is this always a power of 2?

%H Reinhard Zumkeller, <a href="/A105153/b105153.txt">Table of n, a(n) for n = 0..10000</a>

%H David Applegate, Benoit Cloitre, Philippe Deléham and N. J. A. Sloane, Sloping binary numbers: a new sequence related to the binary numbers [<a href="http://neilsloane.com/doc/slopey.pdf">pdf</a>, <a href="http://neilsloane.com/doc/slopey.ps">ps</a>].

%o (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

%o (Haskell)

%o a105153 n = t [n] where

%o t xs@(x:_) | y `elem` xs = length xs

%o | otherwise = t (y : xs) where y = a105025 x

%o -- _Reinhard Zumkeller_, Jul 21 2012

%Y Positions of 1's: A105271.

%Y Cf. A102370, A105025, A105027, A105154.

%K nonn,easy,base

%O 0,3

%A _Philippe Deléham_, Apr 30 2005

%E More terms from _R. J. Mathar_, Aug 10 2007