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