在这个线程中,@Thomas Lux 有一个很好的解决方案,在半径 r=1 的 nD 球内生成均匀随机点。但现在我想生成笛卡尔坐标为整数的点。除了在立方体中生成随机点并丢弃范数大于 1 的点之外,我不知道任何方法。
我不知道简单地使用randint
或推np.floor()
送到向量是否可行。
简单地使用round()
统一的真实样本几乎就可以了。除了靠近球边缘的整数点出现的概率较低。这是因为边缘上的点的超立方体邻域不到您采样的球的一半。
不过,有一个简单的解决方法。在完全包含所有此类超立方体的球中生成真实样本,半径r+sqrt(n)/2
应该足够,然后应用舍入,最后丢弃不在 distance 内的整数点r
。
当然,外球可以比内球大得多,具体取决于r
和n
,但丢弃率仍然应该更好。
归档时间: |
|
查看次数: |
299 次 |
最近记录: |