creint wrote:Here one generated with dlx (rated easy), can you confirm this is a 4d 4x4 sudoku?
I just checked it with my program, this is a valid [2, 2, 1, 1] sudoku.
A [2, 2, 2, 2] doesn't have side lengths = 4. It's not just 16 "4x4" ([2,2]) sudokus stacked together.
Calling it a 4d 4x4 sudoku isn't descriptive enough. I don't prefer calling the sudokus from those links "9x9x9" 3D sudokus. It doesn't adequately describe how the containers are laid out. A [4, 3, 2] sudoku would have the same sudokuSize (24^3) as a [8, 3, 1], [12, 2, 1], [6, 4, 1], or [24, 1, 1] sudoku, all of them would look like a 24x24x24 cube, but all of them would have distinct solution counts.
So constraints are based on only cell level and for every dimension that is added all cells from previous dimension are used for constraints again.
Adding more dimensions will just copy it 3 times to the right or down.
You could stack sudokus of a lower dimension together to create a higher dimensional sudoku, but the new dimension would always have to be 1.
You can't create a full [3, 3] traditional sudoku from gluing 8 extra [9] 1D sudokus onto 1 single [9] 1D sudoku without modifying the container dimensions.
You could start with a 1D sudoku of length 9, this would be a [9] sudoku. There would be one type of span, span[0], which is just the row with length 9. There are no columns or any other types of span. The only container is of size 9 and it takes the same shape as the row, 9x1. You could stack 8 more of these rows onto it, add constraints for the columns, and you would end up with a valid [9, 1] sudoku, a 9x9 latin square. The rows and columns have the same constraints as a [3, 3] sudoku, but the containers still have dimensions 9x1, not 3x3. You would have to change the constraints of a [9, 1] container to a [3, 3] container.
What is difference between [2,2,2] and [2,2,1] and [2,2,2,2] and [2,2,2,1] and what does [2,2,>2]?
[2, 2, 2]:
n = 3
containerSize = 2*2*2 = 8
sudokuSize = 8^3 = 512
appearance: a 8x8x8 cube.
There would be (512/8 = 64) number of containers, span[0]s, span[1]s, and span[2]s.
container appearance: a 2x2x2 cube.
[2, 2, 1]:
n = 3
containerSize = 2*2*1 = 4
sudokuSize = 4^3 = 64
appearance: a 4x4x4 cube.
There would be (64/4 = 16) number of containers, span[0]s, span[1]s, and span[2]s.
container appearance: a 2x2x1 rectangular prism.
[2, 2, 2, 2]:
n = 4
containerSize = 2*2*2*2 = 16
sudokuSize = 16^4 = 65,536
appearance: a 16x16x16x16 hypercube.
There would be (65,536/16 = 4,096) number of containers, span[0]s, span[1]s, span[2]s, and span[3]s.
container appearance: a 2x2x2x2 hypercube.
[2, 2, 2, 1]:
n = 4
containerSize = 2*2*2*1 = 8
sudokuSize = 8^4 = 4096
appearance: a 8x8x8x8 hypercube.
There would be (4096/8 = 512) number of containers, span[0]s, span[1]s, span[2]s, and span[3]s.
container appearance: a 2x2x2x1 rectangular hypercube.
For something like [2, 2, >2]:
[2, 2, a]:
n = 3
containerSize = 2*2*a = 4a
sudokuSize = (4a)^3 = 64a^3
appearance: a (4a)x(4a)x(4a) cube.
There would be ((64a^3)/(4a) = (16a^2)) number of containers, span[0]s, span[1]s, span[2]s, and span[3]s.
container appearance: a 2x2xa rectangular prism.
This relates to why [2, 2, 1] is not the same as [2, 2].
If a = 0, the tensor doesn't exist in that dimension, so the sudoku would just be a [2, 2] sudoku, so [2, 2] is the same as [2, 2, 0], [2, 2, 0, 0], [2, 2, 0, ..., 0].
For the example you provided:
[2, 2, 1, 1]:
n = 4
containerSize = 2*2*1*1 = 4
sudokuSize = 4^4 = 256
appearance: a 4x4x4x4 hypercube.
There would be (256/4 = 64) number of containers, span[0]s, span[1]s, span[2]s, and span[3]s.
container appearance: a 2x2x1x1 rectangular hypercube.
Bonus:
[3, 3, 3]:
n = 3
containerSize = 3*3*3 = 27
sudokuSize = 27^3 = 19,683
appearance: a 27x27x27 cube.
There would be (19,683/27 = 729) number of containers, span[0]s, span[1]s, and span[2]s.
container appearance: a 3x3x3 cube.