У меня есть некоторая матрица, которую я хочу циклически проходить по блокам, матрица может иметь много разных размеров, но я могу знать размер, есть ли способ для быстрой прокрутки блоков?
Т.е.: для быстрого вывода индексов блоков предположим, что матрица 4 * 4 должна иметь:
Блок1: (0,0), (0,1) (1,0) (1,1)
Блок 2: (0,2), (0,3) (1,2) (1,3)
Блок 3: (2,0), (2,1) (3,0) (3,1)
Блок 4: (2,2), (2,3) (3,2) (3,3)
Где индексы (строка, столбец).
Для блоков я имею в виду подматрицу размера sqrt (matrixSize) * sqrt (matrixSize), где matrix - это матрица matrixSize * matrixSize.
Например, матрица 4 * 4 имеет 4 блока по 2 * 2, а матрица 9 * 9 имеет 9 блоков по 3 * 3 ...
Я работаю в C, но я думаю, что псевдокод также полезен, мне нужен только цикл для индексов.