arrays - 给定数组中的索引确定组号
问题描述
假设你有一个大小为 n 的数组,它由 x 组大小为 y 的项目组成。例如,一个大小为 12 的数组,由 3 组 4 项组成。
x*y = n
给定一个项目的索引 (i),你将如何确定它在哪个组 (g) 中?
例如,在上面的数组中,您的索引为 6(其中索引从 0 开始)。这意味着它是第 2 组中的第 3 项,因此 g = 2。索引 8 将产生 g = 3,因为它是第 3 组中的第一项。
得出这个结果 (g) 的公式是什么?
解决方案
如果我们有 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 组。
推荐阅读
- c++ - 在没有窗口获得焦点的情况下在mac终端中运行C++应用程序?
- python - 如何将用户多个输入添加到列表中?
- python - 如何将新列添加到 4d numpy 数组
- sql-server - SQL Server如何为特定类别求和最大值?
- material-ui - 如何使用 material-ui(-next) Select with async options
- c - 将任务划分为功能是有益的还是有害的?
- angular - 可以在显示时更新数据,而无需删除以前在 Angular 4 中添加的数据
- nginx - POST 响应缓存在 nginx 中不起作用
- r - 如何重新排列列表中的对象
- java - 从 CronScheduledRoutePolicy 调用路由后,如何让 Camel FTP 仅轮询一次文件