Я не уверен, что понимаю вопрос, но вы просто просите простое преобразование индекса 2D в 1D?
Если это так, формула (для индексации на основе 1)
FOR i1 = 1..N1 DO
FOR i2 = 1..N2 DO
(i1,i2) => ((i1-1) * N2) + i2)
Вот фрагмент кода Java для демонстрации:
public class Carte {
public static void main(String[] args) {
count(1, 2);
count(2, 1);
count(3, 2);
}
public static void count(final int N1, final int N2) {
System.out.println(N1 + "x" + N2);
for (int i1 = 1; i1 <= N1; i1++) {
for (int i2 = 1; i2 <= N2; i2++) {
System.out.format("(%d,%d)=%d%n", i1, i2, ((i1-1) * N2 + i2));
}
}
}
}
Это печатает:
1x2
(1,1)=1
(1,2)=2
2x1
(1,1)=1
(2,1)=2
3x2
(1,1)=1
(1,2)=2
(2,1)=3
(2,2)=4
(3,1)=5
(3,2)=6
Смотри также