我想在 n 维空间中合并向量。这可以通过对 n 维超球面的表面进行像素化来完成。
有谁知道在 C 中像素化超球面的任何好的算法?我想要恒定的垃圾箱大小。我的空间只包含正整数。
你需要你的垃圾箱完全正常吗?如果没有,只需随机抛出点,并测量到最近邻居的距离。您可以通过丢弃太近的点或运行几次相互排斥的迭代来稍微清理一下。
否则,您可能希望转换为广义球面坐标并沿每个维度划分为相等的区域。特别是,如果您知道您在经度上位于 20 的 bin 5 中,那么您的纬度 bin 将比它们在赤道处的更宽(实际上,在角度上大约 sqrt(2) 对应于相同的距离)表面)。