login
Dual Wythoff array read along antidiagonals.
4

%I #15 Apr 21 2020 11:19:10

%S 1,2,4,3,6,7,5,10,11,9,8,16,18,14,12,13,26,29,23,19,15,21,42,47,37,31,

%T 24,17,34,68,76,60,50,39,27,20,55,110,123,97,81,63,44,32,22,89,178,

%U 199,157,131,102,71,52,35,25,144,288,322,254,212,165,115,84,57,40,28

%N Dual Wythoff array read along antidiagonals.

%C The dual Wythoff array is the dispersion of the sequence w given by w(n)=2+floor(n*x), where x=(golden ratio), so that w=2+A000201(n). For a discussion of dispersions, see A191426. - _Clark Kimberling, Jun 03 2011

%D Clark Kimberling, "Stolarsky Interspersions," Ars Combinatoria 39 (1995) 129-138. See page 135 for the dual Wythoff array and other dual arrays. [From _Clark Kimberling_, Oct 29 2009]

%H P. Hegarty, U. Larsson, <a href="https://www.emis.de/journals/INTEGERS/papers/g3/g3.Abstract.html">Permutations of the natural numbers with prescribed difference multisets</a>, Electr. J. Combin. Numb. Theory 6 (2006) #A03.

%e Array starts

%e 1 2 3 5 8 13 21 34 55 89 144

%e 4 6 10 16 26 42 68 110 178 288 466

%e 7 11 18 29 47 76 123 199 322 521 843

%e 9 14 23 37 60 97 157 254 411 665 1076

%e 12 19 31 50 81 131 212 343 555 898 1453

%e 15 24 39 63 102 165 267 432 699 1131 1830

%e 17 27 44 71 115 186 301 487 788 1275 2063

%e 20 32 52 84 136 220 356 576 932 1508 2440

%e 22 35 57 92 149 241 390 631 1021 1652 2673

%e 25 40 65 105 170 275 445 720 1165 1885 3050

%e 28 45 73 118 191 309 500 809 1309 2118 3427

%p Tn1 := proc(T,nmax,row) local n,r,c,fnd; n := 1; while true do fnd := false; for r from 1 to row do for c from 1 to nmax do if T[r,c] = n then fnd := true; fi; od; if T[r,nmax] < n then RETURN(-1); fi; od; if fnd then n := n+1; else RETURN(n); fi; od; end; Tn2 := proc(T,nmax,row,ai1) local n,r,c,fnd; for r from 1 to row do for c from 1 to nmax do if T[r,c]+1 = ai1 then RETURN(T[r,c+1]+1); fi; od; od; RETURN(-1); end; T := proc(nmax) local a,col,row; a := array(1..nmax,1..nmax); for col from 1 to nmax do a[1,col] := combinat[fibonacci](col+1); od; for row from 2 to nmax do a[row,1] := Tn1(a,nmax,row-1); a[row,2] := Tn2(a,nmax,row-1,a[row,1]); for col from 3 to nmax do a[row,col] := a[row,col-2]+a[row,col-1]; od; od; RETURN(a); end; nmax := 12; a := T(nmax); for d from 1 to nmax do for row from 1 to d do printf("%d, ",a[row,d-row+1]); od; od;

%t (* program generates the dispersion array T of the complement of increasing sequence f[n] *)

%t r = 40; r1 = 12; (* r=# rows of T, r1=# rows to show *)

%t c = 40; c1 = 12; (* c=# cols of T, c1=# cols to show *)

%t x = GoldenRatio; f[n_] := Floor[n*x + 2]

%t (* f(n) is complement of column 1 *)

%t mex[list_] := NestWhile[#1 + 1 &, 1, Union[list][[#1]] <= #1 &, 1, Length[Union[list]]]

%t rows = {NestList[f, 1, c]};

%t Do[rows = Append[rows, NestList[f, mex[Flatten[rows]], r]], {r}];

%t t[i_, j_] := rows[[i, j]]; (* the array T *)

%t TableForm[Table[t[i, j], {i, 1, 10}, {j, 1,10}]]

%t (* Dual Wythoff array, A126714 *)

%t Flatten[Table[t[k, n - k + 1], {n, 1, c1}, {k, 1, n}]] (* array as a sequence *)

%t (* Program by _Peter J. C. Moses_, Jun 01 2011; added here by _Clark Kimberling_, Jun 03 2011 *)

%Y First three rows identical to A035506. First column is A007066. First row is A000045. 2nd row is essentially A006355. 3rd row is essentially A000032. 4th row essentially A000285. 5th row essentially A013655 or A001060. 6th row essentially A022086 or A097135. 7th row essentially A022120. 8th row essentially A022087. 9th row essentially A022130. 10th row essentially A022088. 11th row essentially A022095. 12th row essentially A022089 etc.

%Y Cf. A035513 (Wythoff array).

%K easy,nonn,tabl

%O 1,2

%A _R. J. Mathar_, Feb 12 2007