将 n 维"square"空间划分为立方体
Partition an n-dimensional "square" space into cubes
现在我正在解决下面的"半"数学问题。
我想划分一个n维受限空间(确切地说是一个超立方体)
D={(x_1, ...,x_n), x_i in IR and -limits<=x_i<=limits forall i<=n}
变成更小的立方体。
意味着我想指定n,limits,m
,其中m
将是立方体每边的分区数量- 2*limits/m
将是小立方体的长度,我将得到m^n
这样的立方体。
现在我想返回一个向量的向量包含这些小立方体的不同坐标。(或者可以将立方体表示为指向"左"外角的向量的对象?)
基本上我不知道这样的事情是否可以使用c++。对于固定的n实现这个不会造成问题。但是我想让用户可以自由选择维度。
Background:这样的东西在优化中是无价的。将空间划分为更小的空间,并在每个子空间上使用遗传算法,然后比较结果。因此,可以避免大量的初始种群,并大大改善搜索结果。我也很好奇这样的事情是否可行。
我的建议:用B +树吗?
设m为超立方体d的每个维度(即每个边)的分区数。
那么就有m^n个不同的子空间S (D)设子空间S由整数坐标S=[y_1,y_2,…]唯一表示,y_n],其中y_i是1,…在笛卡尔坐标系中,S=(x_1,x_2,…,x_n)其中Delta*(y_i-1)-limits <= x_i <Delta*y_i-limits和Delta>
你正在寻找的S的"左外角"或原点只是对应于最小x_i的点,即点(*(y_1-1)-limits,…δ* (y_n-1)限制)。与其用这个点来表示不同的S,不如用上面的整数坐标来表示它们更有意义(在计算机中也更快)。
- 如何使用 std::累积在 C++ 中计算总和立方体
- 如何将输出数字划分为奇数和偶数
- C++无符号短裤的划分导致 int
- 如何有效地计算将单位立方体映射到自身的反射和旋转?
- 如何在 C++ 中将数组划分为不同的数组
- 如何使用采样器立方体作为数组
- OpenGL,为什么这不是一个立方体?
- 在具有 MPI 的超立方体中广播
- 分类还是划分枚举?
- 如何将代码划分为多个.cpp文件 C++.
- 将一系列已排序的元素划分为相邻组
- Opengl 和 c++ 绘制多个立方体
- 在某个位置划分链表
- C++没有标准功能的立方体根查找器
- 现代OpenGL:如何获得立方体的矢量位置
- 使用此网格函数的立方体的正确顶点和索引是什么
- 为什么在GLFW窗口中没有用这个代码在我的屏幕上绘制立方体
- OpenGL中立方体的位置
- c++中向量中元素的划分
- 将 n 维"square"空间划分为立方体