java从行和列计算索引
我想为任何给定的行和列计算一个索引(以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”为我提供的正确解决方案
其中行为3,列为2,最大列为2:
Index = (Row * max_columns) + Col - max_columns - 1
= (3 * 2) + 2 - 2 - 1
= 6 + (-1)
= 5
# 1 楼答案
假设每行由n列组成,则该列和行的从零开始的索引为:
现在,由于您的
row
和col
是偏移量1
,您只需将1
添加到两者:对于逆函数,如果
row
和col
是偏移量0
,则可以按如下方式计算索引:或者如果索引是offset
1
:# 2 楼答案