问题描述
我正在寻找在线算法来生成在单位正方形中合理均匀分布的点。
-
点数事先未知。 对于每个 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。