Предположим, я хочу отслеживать состояние ячеек в сетке. Предположим, что сетка имеет размеры m x n
. Я могу просто создать вектор длиной m*n
и отслеживать состояние ячейки, используя вектор. В этом случае каждая точка сетки (которая является 2D) будет отображаться в элемент вектора (1D).
Один метод, который я использовал раньше, выглядит примерно так:
defun 2d->1d (x, y, m, n):
return m*y + x;
defun 1d->2d (i, m, n):
return [i%m, i/m];
Моя проблема заключается в следующем:
Есть ли способ иметь 2D-> 1D отображение, как указано выше, когда размеры сетки неизвестны или когда сетка бесконечна?