在线算法在单位正方形中生成均匀分布的点

问题描述

我正在寻找在线算法来生成在单位正方形中合理均匀分布的点。

  • 点数事先未知。 对于每个 n生成的前 n 个点的分布必须是合理均匀分布的。

  • 坐标是实数(浮点数)(0到1之间);所以,不是在网格上。

  • 点需要(必须)不是随机的;事实上,我想要一个确定性算法,具有可证明的属性(不基于统计)。

可以使用黄金比例Phi在单位间隔内生成这样的点:

  • i 数 (i * Phi) mod 1 为点。

如何在 2D 中做到这一点?

如果预先知道点数为N,则 ((Phi * i) mod 1, i/N) 效果很好。但这不是在线的。

对于某些 c,点 ((Phi * i) mod 1,(c * i) mod 1) 可以工作,但不清楚哪个 c 最好。特别是对于大量的点,我尝试的所有c都有明显的不足。

解决方法

马丁·罗伯茨 (The Unreasonable Effectiveness of Quasirandom Sequences,2018) 推荐倍数 (1/φ2,1/φ22) 其中 φ2 = cbrt((9 + sqrt(69))/18) + cbrt((9 − sqrt(69))/18) 是 plastic number