OFFSET
1,2
COMMENTS
a(n) = 1 if n is a power of 3.
a(n) = n if n-1 is a power of 3.
From Charlie Neder, Jun 09 2019: (Start)
Theorem: Formula below describes the sequence.
Proof: a(n-1) gives the final card from a deck of size n-1, so a(n) will be equal to whichever card occupies the a(n-1)-th position after one iteration. If a(n-1) = 1, this will be card n, if a(n-1) <= ceiling(n/2), this will be card a(n-1)-1, and otherwise it will be card a(n-1). If a(3^k) = 1 (true for k = 0), then for this k:
a(n) = 3^k + 1 for 3^k + 1 <= n <= 2*3^k,
a(n) = 3^(k+1) + 1 - n for 2*3^k + 1 <= n <= 3^(k+1),
and thus a(3^(k+1)) = 1, so the formula holds for all k. (End)
FORMULA
Let t = 3^floor(log_3(n)); then
a(n) = 1 if n = t,
t + 1 if n <= 2*t and n != t,
3*t - n + 1 otherwise.
PROG
(C)
//pow3 is a vector where pow3[n] = 3^n
int f(int n){
int x = 0;
while(pow3[x+1] <= n) x++;
return x;
}
int a(int n){
int fn = f(n);
if(n == pow3[fn]){
return 1;
}else if(n<=(pow3[fn]<<1) && n!=pow3[fn]){
return pow3[fn]+1;
}else{
return pow3[fn+1] - (n-1);
}
}
CROSSREFS
KEYWORD
nonn
AUTHOR
Wilmer Emiro Castrillon Calderon, Jun 06 2019
STATUS
approved