%I #36 Feb 06 2023 12:46:06
%S 1,2,2,1,1,2,3,3,3,4,4,4,4,3,2,1,1,2,3,4,5,5,5,5,5,6,6,6,6,6,6,5,4,3,
%T 2,1,1,2,3,4,5,6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,7,6,5,4,3,2,1,1,2,3,4,
%U 5,6,7,8,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,9,8,7,6,5,4,3,2,1
%N First inverse function (numbers of rows) for pairing function A081344.
%H Boris Putievskiy, <a href="/A220603/b220603.txt">Rows n = 1..140 of triangle, flattened</a>
%H Boris Putievskiy, <a href="http://arxiv.org/abs/1212.2732">Transformations Integer Sequences And Pairing Functions</a>, arXiv:1212.2732 [math.CO], 2012.
%F As a linear array, the sequence is a(n) = mod(t;2)*min{t; n - (t - 1)^2} + mod(t + 1; 2)*min{t; t^2 - n + 1}, where t=floor[sqrt(n-1)]+1.
%e The start of the sequence as triangle array T(n,k) read by rows, row number k contains 2k-1 numbers:
%e 1;
%e 2,2,1;
%e 1,2,3,3,3;
%e 4,4,4,4,3,2,1;
%e ...
%e If k is odd the row is 1,2,...,k,k...k (k times repetition "k" at the end of row).
%e If k is even the row is k,k,...k,k-1,k-2,...1 (k times repetition "k" at the start of row).
%t row[n_] := If[OddQ[n], Range[n-1]~Join~Table[n, {n}], Table[n, {n}]~Join~ Range[n-1, 1, -1]];
%t row /@ Range[10] // Flatten (* _Jean-François Alcover_, Nov 19 2019 *)
%o (Python)
%o t=int(math.sqrt(n-1))+1
%o i=(t % 2)*min(t,n-(t-1)**2) + ((t+1) % 2)*min(t,t**2-n+1)
%Y Cf. A081344.
%K nonn,tabf
%O 1,2
%A _Boris Putievskiy_, Dec 16 2012