cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A140778 a(n) is the smallest positive integer such that no number occurs twice in the union of the sequence and its absolute first differences.

This page as a plain text file.
%I A140778 #13 Dec 30 2024 01:42:13
%S A140778 1,3,7,12,18,8,17,28,13,27,43,19,39,60,22,45,70,26,55,85,31,63,96,34,
%T A140778 69,105,37,77,118,42,88,135,48,97,147,52,103,156,56,113,171,59,120,
%U A140778 184,65,131,198,71,143,216,74,149,227,79,159,240,82,165,249,86,175,265,91,183
%N A140778 a(n) is the smallest positive integer such that no number occurs twice in the union of the sequence and its absolute first differences.
%C A140778 This sequence and its first differences include every positive integer (exactly once).
%H A140778 Alois P. Heinz, <a href="/A140778/b140778.txt">Table of n, a(n) for n = 1..10000</a>
%e A140778 For a(5), the sequence to that point is [1,3,7,12], with absolute differences [2,4,5]. The next number cannot be 6, because then 6 would be in both the sequence and the first differences. Since all values smaller than 6 are taken, the difference must be positive and at least 6. A difference of 6 works, a(5) = 18.
%p A140778 b:= proc() false end:
%p A140778 a:= proc(n) option remember; local k;
%p A140778       if n=1 then b(1):= true; 1
%p A140778     else for k while b(k) or (t-> b(t) or t=k)(abs(a(n-1)-k)) do od;
%p A140778          b(k), b(abs(a(n-1)-k)):= true$2; k
%p A140778       fi
%p A140778     end:
%p A140778 seq(a(n), n=1..100);  # _Alois P. Heinz_, May 14 2015
%t A140778 a[n_] := a[n] = Module[{}, If [n == 1, b[1] = True; 1, For[k = 1, b[k] || Function[t, b[t] || t == k][Abs[a[n-1] - k]], k++]; {b[k], b[Abs[a[n-1] - k]]} = {True, True}; k]]; Table[a[n], {n, 1, 100}] (* _Jean-François Alcover_, Jan 22 2017, after _Alois P. Heinz_ *)
%o A140778 (PARI) IsInList(v, k) = for(i=1,#v,if(v[i]==k,return(1)));return(0) IsInDiff(v, k) = for(i=2,#v,if(abs(v[i]-v[i-1])==k,return(1)));return(0) NextA140778(v)={ local(i,d); if(#v==0,return(1)); i=2; while(1, d=abs(i-v[ #v]); if(!(i==d || IsInList(v,i) || IsInDiff(v,i) || IsInList(v,d) || IsInDiff(v,d)), return(i)); i++) } v=[];for(i=1,100,v=concat(v,NextA140778(v)));v
%o A140778 (PARI) {u=0;a=1;for(n=1,99,u+=1<<a;print1(a",");for(k=1,9e9,(bittest(u,k)||bittest(u,abs(a-k))||a==2*k)&&next;u+=1<<abs(a-k);a=k;break))} \\ _M. F. Hasler_, May 13 2015
%Y A140778 Cf. A140779, A081145.
%Y A140778 See also A005228, A030124, A037257, A037258, A037259, A061577, A257941, A257944.
%K A140778 easy,nonn
%O A140778 1,2
%A A140778 _Franklin T. Adams-Watters_, May 29 2008