我正在编写一个 Android 应用程序,我想生成随机数。
但是,Java 的 RandomGenerator 只给了我伪随机数。数字重复,并非所有数字都被覆盖。
我想要一些能给我非重复数字并覆盖所有数字的东西。我怎么做?
您可以将所需的所有随机值放入 List 并随机播放。
List<Integer> numbers = ...
Collections.shuffle(numbers);
这将以随机顺序为您提供唯一编号。
您可以用要循环的数字填充数据结构,然后随机化结构中元素的顺序并将它们一一拉出。或者,您可以随机选择索引,并在这些索引处检索元素。无论你做什么(你会为特定的数据结构选择一个更有效的),你一定要在你抓住它时删除它。随着您继续前进,您的数据结构将变得越来越小,直到您收到所有元素并且什么都没有。这也确保您永远不会两次击中相同的数字,因为您已将其从可能的数字池中删除。