【发布时间】:2016-03-02 13:39:21
【问题描述】:
我想为任何给定的行和列计算索引(以 0 为底),其中行和列以 1 为底且列数已知,例如2
如果 max_columns 为 2 且 index 为 5,则从索引计算行数:
Row = (index % max_columns) + (int)(index / max_columns)
= (5 % 2) + (int)(5 / 2)
= 1 + 2
= 3
从索引计算列号
Col = max_columns - (index % max_columns)
= 2 - (5 % 2)
= 2 - 1
= 1
问题是如何从索引为基数 0 的任何索引计算行和列。这是在 java 应用程序中计算数组的索引。
'Willem Van Onsem' 为我提供的正确解决方案:
其中Row 是 3,Col 是 2,max_columns 是 2:
Index = (Row * max_columns) + Col - max_columns - 1
= (3 * 2) + 2 - 2 - 1
= 6 + (-1)
= 5
【问题讨论】:
-
以上公式计算
Row和Col计算 - afaik - 不正确的行和列。