首页 > 解决方案 > 给定数组中的索引确定组号

问题描述

假设你有一个大小为 n 的数组,它由 x 组大小为 y 的项目组成。例如,一个大小为 12 的数组,由 3 组 4 项组成。

x*y = n

给定一个项目的索引 (i),你将如何确定它在哪个组 (g) 中?

例如,在上面的数组中,您的索引为 6(其中索引从 0 开始)。这意味着它是第 2 组中的第 3 项,因此 g = 2。索引 8 将产生 g = 3,因为它是第 3 组中的第一项。

得出这个结果 (g) 的公式是什么?

标签: arraysmathformulaarray-formulas

解决方案


如果我们有 x,y,i 和 n,那么我们可以使用以下公式计算组数。

计算它属于哪个组:y/i。

我假设 x,y 中的每一个都从 0 开始。

解释:

我们可以把它写成:假设组是 G,k 是某个数字。

y*G+k = 我;这使得,G = ik/y

这里我们可以忽略k。最终表达式:G=floor(i/y)

考虑你的例子。x = 3,y = 4 和 i = 6。

G = 地板(6/4) = 1。

组数从 0 开始,因此它将是第 2 组。


推荐阅读