login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A216253
A213196 as table read layer by layer - layer clockwise, layer counterclockwise and so on.
1
1, 2, 5, 4, 3, 7, 10, 8, 6, 12, 14, 23, 20, 17, 9, 11, 13, 16, 26, 38, 43, 39, 21, 24, 15, 18, 27, 31, 35, 48, 63, 58, 42, 30, 25, 22, 19, 29, 34, 57, 53, 69, 76, 70, 64, 49, 36, 32, 28, 40, 44, 59, 54, 82, 88, 109, 102, 95, 75, 81, 52, 47, 33, 37, 41, 46, 62
OFFSET
1,2
COMMENTS
Permutation of the natural numbers.
a(n) is a pairing function: a function that reversibly maps Z^{+} x Z^{+} onto Z^{+}, where Z^{+} is the set of integer positive numbers.
Call a "layer" a pair of sides of square from T(1,n) to T(n,n) and from T(n,n) to T(n,1). Table read by boustrophedonic ("ox-plowing") method.
Let m be natural number. The order of the list:
T(1,1)=1;
T(2,1), T(2,2), T(1,2);
. . .
T(1,2*m+1), T(2,2*m+1), ... T(2*m,2*m+1), T(2*m+1,2*m+1), T(2*m+1,2*m), ... T(2*m+1,1);
T(2*m,1), T(2*m,2), ... T(2*m,2*m-1), T(2*m,2*m), T(2*m-1,2*m), ... T(1,2*m);
. . .
The first row is layer read clockwise, the second row is layer counterclockwise.
FORMULA
a(n) = (m1+m2-1)*(m1+m2-2)/2+m1, where m1=(3*i+j-1-(-1)^i+(i+j-2)*(-1)^(i+j))/4, m2=((1+(-1)^i)*((1+(-1)^j)*2*int((j+2)/4)-(-1+(-1)^j)*(2*int((i+4)/4)+2*int(j/2)))-(-1+(-1)^i)*((1+(-1)^j)*(1+2*int(i/4)+2*int(j/2))-(-1+(-1)^j)*(1+2*int(j/4))))/4, i=(t mod 2)*min(t; n-(t-1)^2) + (t+1 mod 2)*min(t; t^2-n+1), j=(t mod 2)*min(t; t^2-n+1) + (t+1 mod 2)*min(t; n-(t-1)^2), t=floor(sqrt(n-1))+1.
EXAMPLE
The start of the sequence as table:
1....4...3..11..13...
2....5...7...9..16...
6....8..10..17..26...
12..14..23..20..38...
15..24..21..39..43...
. . .
The start of the sequence as triangular array read by rows:
1;
2,5,4;
3,7,10,8,6;
12,14,23,20,17,9,11;
13,16,26,38,43,39,21,24,15;
. . .
Row number r contains 2*r-1 numbers.
PROG
(Python)
t=int((math.sqrt(n-1)))+1
i=(t % 2)*min(t, n-(t-1)**2) + ((t+1) % 2)*min(t, t**2-n+1)
j=(t % 2)*min(t, t**2-n+1) + ((t+1) % 2)*min(t, n-(t-1)**2)
m1=(3*i+j-1-(-1)**i+(i+j-2)*(-1)**(i+j))/4
m2=((1+(-1)**i)*((1+(-1)**j)*2*int((j+2)/4)-(-1+(-1)**j)*(2*int((i+4)/4)+2*int(j/2)))-(-1+(-1)**i)*((1+(-1)**j)*(1+2*int(i/4)+2*int(j/2))-(-1+(-1)**j)*(1+2*int(j/4))))/4
m=(m1+m2-1)*(m1+m2-2)/2+m1
CROSSREFS
KEYWORD
nonn,tabl
AUTHOR
Boris Putievskiy, Mar 15 2013
STATUS
approved