OFFSET
0,9
COMMENTS
From Wolfdieter Lang, Oct 24 2020: (Start)
If this sequence is written with offset 1 as a number triangle T(n, k), with n the length of row n, for n >= 1, then row n gives the primitive period of the periodic sequence {k (mod* n)}_{k>=0}, where k (mod* n) = k (mod n) if k <= floor(n/2) and otherwise it is -k (mod n). Such a modified modular relation mod* n has been used by Brändli and Beyne, but for integers relative prime to n.
LINKS
T. D. Noe, Table of n, a(n) for n = 0..1000
Gerold Brändli and Tim Beyne, Modified Congruence Modulo n with Half the Amount of Residues, arXiv:1504.02757 [math.NT], 2015-2016.
FORMULA
a(n) = (x - |y - |x-y||)/2, when (x,y) is the n-th element in the triangle x >= y >= 1. - M. F. Hasler, Dec 06 2019
a(n) = (1/2)*abs(t^2 + t - 2*n), where t = floor(sqrt(2*n)) = A172471. - Ridouane Oudra, Dec 15 2021
From Ctibor O. Zizka, Nov 12 2024: (Start)
For s >= 1, t from [0, s] :
a(2*s^2 + t) = s - t.
a(2*s^2 - t) = s - t.
a(2*s^2 + 2*s - t) = s - t.
a(2*s^2 + 2*s + 1 + t) = s - t. (End)
EXAMPLE
a(12) = |12 - 10| = 2 since 10 is the nearest triangular number to 12.
From M. F. Hasler, Dec 06 2019: (Start)
Ignoring a(0) = 0, the sequence can be written as triangle indexed by m >= k >= 1, in which case the terms are (m - |k - |m-k||)/2, as follows:
0, (Row 0: ignore)
0, (Row m=1, k=1: For k=m, m - |k - |m-k|| = m - |m - 0| = 0.)
1, 0, (Row m=2: for k=1, |m-k| = 1, k-|m-k| = 0, m-0 = 2, (...)/2 = 1.)
1, 1, 0,
1, 2, 1, 0, (Row m=4: for k=2, we have twice the value of (m=2, k=1) => 2.)
1, 2, 2, 1, 0,
(...)
This is related to the non-associative operation A049581(x,y) = |x - y| =: x @ y. Specifically, @ is commutative and any x is its own inverse, so non-associativity of @ can be measured through the commutator ((x @ y) @ y) @ x which equals twice the element indexed {m,k} = {x,y} in the above triangle.
(End)
MATHEMATICA
a[n_] := (k =.; k = Reduce[k > 0 && k*(k+1)/2 == n, Reals][[2]] // Floor; Min[(k+1)*(k+2)/2 - n, n - k*(k+1)/2]); Table[a[n], {n, 0, 104}] (* Jean-François Alcover, Jan 08 2013 *)
Module[{trms=120, t}, t=Accumulate[Range[Ceiling[(Sqrt[8*trms+1]-1)/2]]]; Join[{0}, Flatten[Table[Abs[Nearest[t, n][[1]]-n], {n, trms}]]]] (* Harvey P. Dale, Nov 08 2013 *)
PROG
(PARI) print1(x=0, ", "); for(stride=1, 13, x+=stride; y=x+stride+1; for(k=x, y-1, print1(min(k-x, y-k), ", "))) \\ Hugo Pfoertner, Jun 02 2018
(PARI) apply( {a(n)=if(n, -abs(n*2-(n=sqrtint(8*n-7)\/2)^2)+n)\2}, [0..40]) \\ same as (i - |j - |i-j||)/2 with i=sqrtint(8*n-7)\/2, j=n-i(i-1)/2. - M. F. Hasler, Dec 06 2019
(Python)
from math import isqrt
def A053616(n): return abs((m:=isqrt(k:=n<<1))*(m+1)-k)>>1 # Chai Wah Wu, Jul 15 2022
CROSSREFS
KEYWORD
easy,nice,nonn
AUTHOR
Henry Bottomley, Mar 20 2000
STATUS
approved