A281130 a(n+1) = a(n-a(n)) if a(n-1) < a(n), otherwise a(n+1) = 2*a(n); a(1) = a(2) = 1.
1, 1, 2, 1, 2, 2, 4, 2, 4, 2, 4, 4, 8, 2, 4, 4, 8, 4, 8, 4, 8, 8, 16, 4, 8, 8, 16, 4, 8, 8, 16, 4, 8, 8, 16, 8, 16, 8, 16, 16, 32, 4, 8, 16, 4, 8, 8, 16, 4, 8, 4, 8, 16, 16, 32, 16, 32, 8, 16, 8, 16, 4, 8, 32, 4, 8, 8, 16, 8, 16, 16, 32, 16, 32, 4, 8, 16, 16, 32, 8
Offset: 1
Keywords
Examples
a(3) = 2*a(2) = 2 because a(1) !< a(2). a(4) = a(3-a(3)) = 1 because a(2) < a(3).
Links
- Rok Cestnik, Table of n, a(n) for n = 1..10000
- Rok Cestnik, Self-referencing visualization
Programs
-
C
#include
#include int main(void){ int N = 1000; int *a = (int*)malloc((N+1)*sizeof(int)); printf("1 1\n2 1\n"); a[1] = 1; a[2] = 1; for(int i = 2; i < N; ++i){ if(a[i-1] < a[i]) a[i+1] = a[i-a[i]]; else a[i+1] = 2*a[i]; printf("%d %d\n", i+1, a[i+1]); } return 0; } -
Mathematica
a[n_] := a[n] = If[a[n -2] < a[n -1], a[n -1 -a[n -1]], 2 a[n -1]]; a[1] = a[2] = 1; Array[a, 100]
Comments