查找有效内部圆形内部阵列的索引
Finding indices of an array that lie inside a circle efficiently
我会告诉你我开始学习编程。
问题是:
我有一个长度为n的数组,我想找到所有位于半径r中心的圈子内的索引,例如jth。
我有一个主意,但这可能非常效率。
我会使用以下方式将[0,n-1]中的KTH索引转换为笛卡尔坐标:
int x = k / side;
int y= k % side;
侧面是sqrt(n),并测试它是否满足圆的方程:
(x_xC)*(x-xC)+ (y_yC)*(y-yC)<=R*R
其中(xc,yc)是jth元素的坐标。如果是的,我将存储与(x,y)关联的索引,否则将其重新用于下一个元素,直到覆盖整个数组为止。
这是一个好主意,还是对于非常大的阵列而言太效率了?
有一种方法可以循环绕过整个数组,而只有圆圈中的元素:
:计算
xC
和yC
。令
y
从yC-R
到yC+R
(在数组边界处进行正确的剪辑,如果R
不是整数)。对于每个这样的
y
,让r=sqrt(R*R-(y-yC)*(y-yC))
,然后使用适当的舍入的x
循环到xC-r
到xC+r
(再次,在数组边界处进行适当的剪辑)。将
x
和y
转换回数组索引。
相关文章:
- 数组索引的值没有增加
- 将函数类成员映射到类本身内部
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 查找最接近的大于当前数字的数字的索引
- 在C++中调整向量中的索引
- Boost Spirit,获取迭代器内部语义动作
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 内联函数中具有内部链接的全局变量
- 在函数内部的声明中初始化数组,并在外部使用它
- 如何在不知道向量大小的情况下输入向量内部的向量?
- 重载元组索引运算符-C++
- 给定一个向量,如何找到该向量的所有子集和的原始索引
- 为std::string的某个索引赋值
- 并行用于C++17中数组索引范围内的循环
- 卷曲bracers内部结构的声明
- 从函数角度看ID到文件路径的内部与外部映射
- spdlog标头仅与外部fmt一起使用.spdlog错误:'内部':不是'fmt'
- 查找有效内部圆形内部阵列的索引
- 向量的向量.根据内部向量的特定索引删除重复项
- 函数内部:从数组中复制值或通过索引重复访问