【问题标题】:Finding random k points at least d apart in 3D confined space在 3D 密闭空间中找到至少相隔 d 的随机 k 点
【发布时间】:2021-07-22 10:09:40
【问题描述】:

出于我的模拟目的,我想在有限的 3D 空间(矩形内)中生成随机分布的 k 个球体(具有相同的半径),其中 k 的数量级为 1000。这些球体不应撞击一个另一个。

所以,我想在 3D 空间中生成随机的 k 个点,它们之间的距离至少为 d;考虑到点的数量和我需要这些点进行模拟的频率,我不想施加蛮力;我正在寻找一些有效的算法来实现这一点。

【问题讨论】:

  • 您能否提供更多背景信息并告诉您什么是 E3?
  • @DeepakTatyajiAhire 我的意思是 1000,我已经编辑了。
  • 您所问的问题一般来说似乎是不可能的。
  • @mnulb 在写作时我意识到我对你所追求的东西没有好感,在问题中添加细节将有助于给出更合适的答案

标签: algorithm random


【解决方案1】:

如何从空间的一些常规镶嵌开始(即一些primitive 3d lattice)并在每个图块的某个位置放置一个点?然后,您只需要检查少量相邻的图块是否接近。

要获得统计上更统一(即不那么规则)的一组点,您可以:

  • 空间扰动点
  • 生成过密的晶格并拒绝一些点
  • “扭曲”空间,使格子在某些区域更加密集

您可以按顺序扰动这些点,在它们的坐标上为您提供一个蒙特卡罗链,并可能节省其他地方的工作。大概你可以调整它,以便平衡分布是你想要的。

【讨论】:

    猜你喜欢
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 2018-06-26
    • 2012-09-17
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    相关资源
    最近更新 更多