Как вы можете получить позицию и значение из строки в точной матрице обложек для судоку? - PullRequest
0 голосов
/ 29 мая 2020

Используя точную матрицу обложек судоку, такую ​​как здесь , каждая строка в матрице коррелирует с позицией в сетке судоку (строка, столбец) и значением.

Учитывая только номер строки в матрице обложки и размер сетки судоку (в данном случае 9), каков алгоритм определения строки, столбца и значения, к которому относится строка? (например, строка 1 относится к строке 1, столбцу 1 и значению 1, строка 12 относится к строке 1, столбцу 2, значению 3)

1 Ответ

0 голосов
/ 31 мая 2020

Я написал это в java, что действительно решает проблему, однако мне все еще интересно, есть ли способ сделать это без использования al oop, это похоже на проблему, которая может быть выражена чисто математически. .

private int[] rowInGrid(int puzzleSize, int matrixRow) {
        // return the row, column and value correlating to a row in the cover matrix

        int row = 0;
        int col = 0;
        int val = 0;

        for (int i = 0; i < matrixRow; i++) {
            val++;

            if (val == puzzleSize) {
                col++;
                val = 0;
            }

            if (col == puzzleSize) {
                row++;
                col = 0;
            }
        }

        return new int[]{row,col,val};
    }

Функция принимает размер головоломки (ширина / высота / количество значений) и номер строки в матрице обложки (например, 0 относится к первому возможному значению в первой строке и первом столбце доска) и возвращает позицию на доске и значение. Все функции этой функции имеют индекс 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...