Libgdx 如何制作随机化的数字,但如果它们太接近,请更改

Libgdx 如何制作随机化的数字,但如果它们太接近,请更改,libgdx,Libgdx,我想做随机数字,但如果它们太接近,我想做一个重新滚动,或者让它离另一个数字更远,或者试着让它更分散一些 我想我不确定我到底想要什么:/ 提前谢谢 编辑:所以我之所以使用随机数字是为了在屏幕两侧生成单位的位置,所以我希望单位之间不要太靠近,这样看起来会更好。如果重新滚动就足够了,您可以只保存上一个值,然后在下一次迭代中,如果两个数字之间的差值太小,请再次调用Math.rand()。也许你的样本空间太小了 我想随机数字,但如果它们太接近,我想 使其重新滚动或使其距离另一个更远 编号或尝试使其更分散一

我想做随机数字,但如果它们太接近,我想做一个重新滚动,或者让它离另一个数字更远,或者试着让它更分散一些

我想我不确定我到底想要什么:/

提前谢谢


编辑:所以我之所以使用随机数字是为了在屏幕两侧生成单位的位置,所以我希望单位之间不要太靠近,这样看起来会更好。

如果重新滚动就足够了,您可以只保存上一个值,然后在下一次迭代中,如果两个数字之间的差值太小,请再次调用Math.rand()。也许你的样本空间太小了

我想随机数字,但如果它们太接近,我想 使其重新滚动或使其距离另一个更远 编号或尝试使其更分散一点

随机数生成器有时会生成彼此相邻的数

如果你不想让它们靠得这么近,也许你需要的是固定的数字,每个数字都有一个小的随机扰动

假设您选择数字10、20、30、40和50。然后,运行一个随机数生成器,该生成器将为您提供一个介于-3和+3之间的数字。依次将此随机数添加到每个随机数中。这会产生不一致的数字,但它们之间并不太接近

  • 获得随机位置
  • 如果它不好(太接近其他东西或任何东西),请转至步骤1
  • 好了!你得到了有效的职位。:)

  • 或者…预先计算所有有效位置,将它们放在某个数组中,并使用rnd函数获取数组索引-数组元素将使用什么。这应该是更快的解决方案(如果你有大量的单位).

    我认为如果有两个以上的数字,这会变得有点复杂,因为它必须与之前的每一个值进行比较?如果你试图与之前的每一个值进行比较,那么对于给定范围的随机数,你最终会耗尽空间。你到底想做什么?这是一个有趣的选择。可能最终会使用这个,但我会看看还有什么可以用。你得到的两个答案都适用于特定的问题。你想解决什么问题?你为什么要做随机数字?有目的地编辑主题