我想在 *100 平面上生成均匀分布的圆/点/节点。为此,我在 java 中使用 Random() 方法。具体来说,我是通过以下方式进行的:
Random r1=new Random();
for(int i=0;i<100;i++){
x=100*r1.nextDouble();
y=100*r1.nextDouble();
}
但问题是,当我一遍又一遍地运行代码时,节点在平面上的间隔并不均匀,即存在集中的簇和一些未占用的空间 block 。
任何想法,建议将不胜感激。 下图显示了带有簇和空白的典型输出。圈子的数量只是圈子的ID。
最佳答案
如果你想让你的随机分布看起来更“均匀”,也就是说你想要更均匀地覆盖空间,你不能使用完全均匀的分布,因为它会包含“间隙”,正如@Adam 指出的那样。
您可以改用名为 Low-discrepancy sequence 的东西: Halton sequence例如,或 Sobol sequence .正如您在维基百科示例图片中看到的那样,它们避免了您在均匀分布时会遇到的集群和间隙。
关于java - 平面上均匀分布的点在 Java 中聚集,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19311886/