2

我正在编写一个 Android 应用程序,我想生成随机数。

但是,Java 的 RandomGenerator 只给了我伪随机数。数字重复,并非所有数字都被覆盖。

我想要一些能给我非重复数字并覆盖所有数字的东西。我怎么做?

4

2 回答 2

7

您可以将所需的所有随机值放入 List 并随机播放。

List<Integer> numbers = ...
Collections.shuffle(numbers);

这将以随机顺序为您提供唯一编号。

于 2012-07-06T12:26:57.353 回答
0

您可以用要循环的数字填充数据结构,然后随机化结构中元素的顺序并将它们一一拉出。或者,您可以随机选择索引,并在这些索引处检索元素。无论你做什么(你会为特定的数据结构选择一个更有效的),你一定要在你抓住它时删除它。随着您继续前进,您的数据结构将变得越来越小,直到您收到所有元素并且什么都没有。这也确保您永远不会两次击中相同的数字,因为您已将其从可能的数字池中删除。

于 2012-07-06T12:24:30.910 回答