login
The OEIS is supported by the many generous donors to the OEIS Foundation.

 

Logo
Hints
(Greetings from The On-Line Encyclopedia of Integer Sequences!)
A292670 Least number of symbols required to fill a grid of size n^2 X n^2 row by row in the greedy way such that in no row or column or n X n square any symbol occurs twice. 9

%I #15 Apr 13 2023 12:11:23

%S 1,6,14,26,40,53,73,114,144,161,188,210,250,279,329,482,544,577,611,

%T 656,697,752,847,906,947,973,1049,1113,1210,1284,1425,1986,2112,2177,

%U 2242,2326,2408,2473,2632,2748,2818,2886,3004,3125,3334,3390,3539,3661,3806,3870

%N Least number of symbols required to fill a grid of size n^2 X n^2 row by row in the greedy way such that in no row or column or n X n square any symbol occurs twice.

%C Consider the symbols as positive integers. By the greedy way we mean to fill the grid row by row from left to right always with the least possible positive integer such that the three constraints (on rows, columns and rectangular blocks) are satisfied.

%C In contrast to the sudoku case, the n X n rectangles have "floating" borders, so the constraint is actually equivalent to say that any element must be different from all neighbors in a Moore neighborhood of range n-1 (having up to (2n-1)^2 grid points).

%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/MooreNeighborhood.html">Moore Neighborhood</a>.

%e For n = 2, the 4 X 4 grid is filled as follows:

%e [1 2 3 4]

%e [3 4 1 2]

%e [2 5 6 3]

%e [4 1 2 5], whence a(2) = 6.

%o (PARI) a(m,n=m^2,g=matrix(n,n))={my(ok(g,k,i,j,m)=if(m,ok(g[i,],k)&&ok(g[,j],k)&&ok(concat(Vec(g[max(1,i-m+1)..i,max(1,j-m+1)..min(#g,j+m-1)])),k),!setsearch(Set(g),k))); for(i=1,n,for(j=1,n,for(k=1,n^2,ok(g,k,i,j,m)&&(g[i,j]=k)&&break)));vecmax(g)} \\ without "vecmax" the program returns the full n^2 X n^2 board.

%o (Python)

%o def a(n):

%o s, b = n*n, n # side length, block size

%o m, S, N = 0, {1}, range(1, s+1)

%o g = [[0 for j in range(s+b)] for i in range(s+b)]

%o row, col = {i:set() for i in N}, {j:set() for j in N}

%o offsets = [(i, j) for i in range(-b+1, 1) for j in range(-b+1, 1)]

%o offsets += [(i, j) for i in range(-b+1, 0) for j in range(1, b)]

%o for i in N:

%o for j in N:

%o rect = set(g[i+o[0]][j+o[1]] for o in offsets)

%o e = min(S - row[i] - col[j] - rect)

%o g[i][j] = e

%o if e > m:

%o m = e

%o S.add(m+1)

%o row[i].add(e)

%o col[j].add(e)

%o return m

%o print([a(n) for n in range(1, 13)]) # _Michael S. Branicky_, Apr 13 2023

%Y Cf. A292671: grid size independent of block size; A292672, ..., A292679: A(m,n) for fixed n=2,...,9).

%K nonn

%O 1,2

%A _M. F. Hasler_, Sep 20 2017

%E a(9) and beyond from _Michael S. Branicky_, Apr 13 2023

Lookup | Welcome | Wiki | Register | Music | Plot 2 | Demos | Index | Browse | More | WebCam
Contribute new seq. or comment | Format | Style Sheet | Transforms | Superseeker | Recents
The OEIS Community | Maintained by The OEIS Foundation Inc.

License Agreements, Terms of Use, Privacy Policy. .

Last modified April 25 01:35 EDT 2024. Contains 371964 sequences. (Running on oeis4.)