login
a(n) is the smallest period of pseudo-arithmetic progression with initial term 1 and difference 2n-1.
19

%I #32 Apr 13 2020 07:10:39

%S 1,1,2,1,3,5,6,1,4,9,2,4,10,9,14,1,5,5,18,4,10,7,5,9,10,2,26,8,9,29,

%T 30,1,6,33,11,14,3,9,15,17,27,41,2,11,4,4,3,14,24,15,50,23,4,53,18,14,

%U 14,19,3,9,55,6,50,1,7,65,8,17,34,69,23,25,14,20,74,5,10,8,26,21

%N a(n) is the smallest period of pseudo-arithmetic progression with initial term 1 and difference 2n-1.

%C Let x,y be odd numbers. Denote <+> the following binary operation: x<+>y=A000265(x+y). Let a and d be odd numbers. We call a sequence of the form b, b<+>d, (b<+>d)<+>d,... a pseudo-arithmetic progression with the initial term b and the difference d. It is not difficult to prove that every pseudo-arithmetic progression is periodic sequence. This sequence lists smallest periods of pseudo-arithmetic progressions with initial term 1 and difference 2n-1, n=1,2,...

%C a(n) is the number of distinct odd residues contained in set {1,2,...,2^(2*n-2)} modulo 2*n-1. Thus 2*n-1 is in A001122 iff a(n)=n-1. - _Vladimir Shevelev_, Jul 18 2010

%H Peter J. C. Moses, <a href="/A179382/b179382.txt">Table of n, a(n) for n = 1..4096</a>

%F a(n) = A001222(A292239(n-1)). - _Antti Karttunen_, Oct 04 2017

%e For n=5, we have 1<+>9=5, 5<+>9=7, 7<+>9=1. Thus a(5)=3.

%p pseuAprog := proc(a,b) A000265(a+b) ; end proc:

%p A179382 := proc(n) local p,k; p := [1] ; for k from 2 do a := pseuAprog( p[-1],2*n-1) ; if not a in p then p := [op(p),a] ; else return nops(p) ; end if; end do: end proc:

%p seq(A179382(n),n=1..80) ;

%p # _R. J. Mathar_, Jul 13 2010

%t oddres[n_] := n/2^IntegerExponent[n, 2];

%t a[n_] := Module[{d = 2n-1, k=1, t=1}, While[(t = oddres[t+d])>1, k++]; k];

%t Array[a, 80] (* _Jean-François Alcover_, Apr 13 2020, translated from PARI *)

%o (PARI) oddres(n)=n>>valuation(n,2)

%o a(n)=my(d=2*n-1,k=1,t=1);while((t=oddres(t+d))>1,k++);k

%o \\ _Charles R Greathouse IV_, May 15 2013

%o (Sage)

%o def A179382(n):

%o N, o, s = 2*n-1, 1, 0

%o while True:

%o o = (N + o) >> valuation(N + o, 2)

%o s = s + 1

%o if o == 1: break

%o return s

%o print([A179382(n) for n in (1..72)]) # _Peter Luschny_, Oct 07 2017

%Y Cf. A000265, A001122, A179680, A292239.

%K nonn

%O 1,3

%A _Vladimir Shevelev_, Jul 12 2010

%E Corrected and extended by _R. J. Mathar_, Jul 13 2010

%E Duplicated database lines removed by _R. J. Mathar_, Jul 23 2010