首页 > 解决方案 > 随机分配数量

问题描述

我正在开始一个模拟物体爆炸的项目。我想随机分配爆炸成碎片的物体的总质量。例如,如果物体的质量为 3 公斤并分成 3 个碎片,它们的质量可能分别为 1、0.5、1.5。我想用能量和其他东西做同样的事情。另外,我想控制使用的随机分布。

我想我可以简单地通过生成一个随机数来做到这一点,以某种方式将它与我想要分配的数量联系起来,并在减去总池的同时继续这样做。这种方法的问题在于,乍一看它似乎不是很有效,而且它可能会给固定数量的片段带来问题。

所以问题是,是否有算法或有效的方法来做到这一点?一个例子将被彻底理解。

标签: algorithmrandom

解决方案


对于这个问题,我会尝试的第一件事是:

  1. 生成 0 到 1 之间的 N-1 个随机数
  2. 对它们进行排序
  3. 将它们提升到x次方
  4. 将 0、连续数字和 1 之间的 N 个差乘以您要分配的数量。当然,所有这些差异加起来为 1,因此您最终将准确分配目标数量。

这种方法的一个很好的优点是您可以调整参数x以获得美观​​的块分布。自然爆炸不会产生块大小的均匀分布,所以你会想玩这个。


推荐阅读