生成所有整数向量的算法,其幅度在n ± δn±δ

计算科学 组合学
2021-11-28 05:53:25

我正在开发一个程序来计算给定粒子配置的结构因子,我需要一个有效的算法来生成所有可能的向量,其整数坐标和大小在之间,其中很小与相比。这相当于找到所有解决方案nδn+δδn

(nδ)2<v2<(n+δ)2

vZ3

当然,我只需要找到一半的解决方案,因为另一半将由

v=v

解决这个问题的最佳算法是什么?

PS 这是我第一次在这里发帖,所以对标签的任何帮助将不胜感激。

1个回答

一个简单的嵌套循环如何为您提供一个八分圆的解决方案,然后由于对称性而可以复制:

i从 0 到d+n

j从 0 到(d+n)2i2

k,其中最小界限为 0 如果(dn)2i2j2(d+n)2i2j2i2+j2>(dn)2

您必须四舍五入到“最小”整数范围。