OFFSET
0,3
COMMENTS
In a discussion in the newsgroup de.sci.mathematik, Klaus Nagel (see links) described a bijection P: G -> H between the grid points of two Cartesian grids G{Z X Z} and H{Z X Z} rotated against each other by Pi/4 around the only common point (0,0). This is a variation of the marriage problem asking for a matching in the infinite bipartite graph of the vertices of G U H with small distance d=|P(g)-g| for all points g in G.
Points within the grids are addressed by (i,j) in grid G and by (k,m) in grid H.
The plane is divided into horizontal strips of width cos(Pi/8) = sqrt(sqrt(2)+2)/2, with the x-axis as centerline of strip 0. Grid G is rotated by Pi/8, grid H by -Pi/8.
Assuming proper boundary conditions, there is exactly one grid point of G per grid line i=const and one grid point of grid H per grid line k=const inside each strip.
The intersections of the grid lines i=const from the rotated grid G and of lines k=const from the rotated grid H with the centerline of the strip are determined. The grid points inside the strip are paired such that the distance of the intersection points of lines i=const of grid G and of lines k=const of grid H with the strip centerline is minimized.
This bijection achieves a maximum of all mutual Euclidean distances of all pairs of cos(Pi/8)=0.9238795... (the strip width).
It is conjectured that the least possible maximum distance within pairs can be reduced to sqrt(5)*sin(Pi/8)=0.855706..., but not further, and that this can be achieved by "local repairs" of the result of the strip bijection, i.e. by reassigning the connections in groups of 4 pairs, one of which being the pair with d>0.8557... and 3 pairs in the vicinity of the violating pair, but potentially addressing points in neighbor strips. The conjecture is supported by extensive numerical results, but an announced proof by Klaus Nagel remained unpublished.
For the current sequence no repair is applied. The first repairs are required beyond i^2+j^2=40. The affected sequence terms for n>=124 are visible in the b-file of A307731.
The results of the matching are shown by enumerating the grid points of grid G according to the sequence pair A305575(n) for i and A305576(n) for j.
After finding the indices of the bijection partners (k,m) in grid H using Klaus Nagel's method, the position L where A305575(L)=k and A305576(L)=m is determined by table lookups, and the unique result is a(n)=L.
The sequence is a permutation of the natural numbers.
LINKS
Hugo Pfoertner and Rainer Rosenthal, Table of n, a(n) for n = 0..10000
H. Carstens, W. Deuber, W. Thumser, E. Koppenrade, Geometrical Bijections in Discrete Lattices. Combinatorics, Probability and Computing, 8(1-2), 109-129, 1999.
Klaus Nagel, Zwei Gitter, thread in newsgroup de.sci.mathematik, description of bijection (in German), Jan 7 2007.
Klaus Nagel, Zwei Gitter, thread in newsgroup de.sci.mathematik, modification of strip location (in German), Jan 14 2007.
Hugo Pfoertner, Illustration of strip bijection, (2019).
Rainer Rosenthal, Illustrating examples a(0) ... a(29), Nov 29 2023.
EXAMPLE
The following table shows the first few matched pairs of grid points:
Grid G Grid H Grid H rotated
n i j a(n) k m (k,m) rotated by -Pi/4 distance of matched points
0 0 0 0 0 0 0.000000 0.000000 0.000000
1 1 0 1 1 0 0.707107 -0.707107 0.765367
2 0 1 6 -1 1 0.000000 1.414214 0.414214
3 -1 0 3 -1 0 -0.707107 0.707107 0.765367
4 0 -1 8 1 -1 0.000000 -1.414214 0.414214
5 1 1 2 0 1 0.707107 0.707107 0.414214
6 -1 1 11 -2 0 -1.414214 1.414214 0.585786
7 -1 -1 4 0 -1 -0.707107 -0.707107 0.414214
8 1 -1 9 2 0 1.414214 -1.414214 0.585786
9 2 0 5 1 1 1.414214 0.000000 0.585786
10 0 2 15 -1 2 0.707107 2.121320 0.717439
11 -2 0 7 -1 -1 -1.414214 0.000000 0.585786
12 0 -2 19 1 -2 -0.707107 -2.121320 0.717439
13 2 1 14 1 2 2.121320 0.707107 0.317025
PROG
(PARI) /* It is assumed that the files a305575 and a305576 contain the second column of the corresponding b-files */
a305575=readvec(a305575); a305576=readvec(a305576);
p(i, j)={my(C=cos(Pi/8), S=sin(Pi/8), T=S/C, gx=i*C-j*S, gy=i*S+j*C, k, xm, ym, v=[0, 0]);
k=round(gy/C); ym=C*k; xm=gx+(gy-ym)*T;
v[1]=round((xm-ym*T)*C); v[2]=round((ym+v[1]*S)/C); v}
findpos(v)={for(k=1, #a305575, if(v[1]==a305575[k]&&v[2]==a305576[k], return(k-1)))}
for(n=1, 67, print1(findpos(p(a305575[n], a305576[n])), ", "))
CROSSREFS
KEYWORD
nonn
AUTHOR
Hugo Pfoertner, following a proposal by Rainer Rosenthal, Mar 28 2019
STATUS
approved