当前位置: 首页 > 面试题库 >

android:生成无重复的随机数

牛迪
2023-03-14
问题内容

有人可以帮助我制定一种无需重复在Android中生成随机数的方法吗?最大数量是:prjcts.size();这是我的JSON数组。并且返回值应为整数。

我已经拥有的是: int i = (int)(prjcts.size() * Math.random());我将方法强制转换了3次,因为我需要3个随机生成的数字。它有效,但是我不知道如何避免重复。因此,这3个数字彼此之间不会相同。

谢谢


问题答案:

您是否尝试过仅使用Math.random()?

只要做一些铸造魔术,您就可以轻松开始了:

int index = (int)((double)prjcts.size() * Math.random());

编辑:

如果要防止重复,则可以创建一个包含所有可能索引的列表。

int max = prjcts.size();
List<int> indices = new ArrayList<int>(max);
for(int c = 0; c < max; ++c)
{
    indices.add(c);
}

然后,每次需要随机索引时,只需从列表中选择一个随机项目,完成后从列表中将其删除

int arrIndex = (int)((double)indices.size() * Math.random());
int randomIndex = indices.get(arrIndex);
indices.remove(arrIndex);

randomIndex 现在保证是JSON列表的从未使用过的索引。



 类似资料:
  • 问题内容: 谁能告诉我如何生成不重复的随机数 随机(10)应该(可能)返回3、4、2、1、7、6、5、8、9、10,而无需重复 谢谢 问题答案: 我建议将数字加到,然后使用来随机化其顺序。像这样:

  • 如何使随机数发生器不重复数字?我试过这个,但它总是重复给我数字

  • 问题内容: 我想创建一组随机数,在Java中没有重复项。 例如,我有一个数组来存储10,000个从0到9999的随机整数。 这是我到目前为止的内容: 但是上面的代码创建重复项。如何确保随机数不重复? 问题答案: 例如:

  • 如何在1到9之间生成9个随机数,而不重复,一个接一个。它类似于:假设生成的第一个随机数是4,那么下一个随机数必须在[1,9]{4}中。我的第一种方法是将每个随机生成的数字添加到一个集合中,从而避免重复。但在更糟糕的情况下,比如我们已经生成了6个数字,我们必须再生成3个数字,这个过程会有点慢。当范围从[1,9]更改为[1,1000]时,这种方法听起来不正确。有人能提出一个替代方法吗。

  • 本文向大家介绍C++生成不重复的随机整数,包括了C++生成不重复的随机整数的使用技巧和注意事项,需要的朋友参考一下 C++生成不重复的随机数,供大家参考,具体内容如下 给定正整数的范围[n,m],生成k个不重复的随机数字。 IDE是vs013。 运行结果: 这个程序可以用于班级内部按照学号进行随机抽签。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 您好,如何在kotlin中生成0到10之间的随机整数?我尝试了<code>Random()。nextInt()和,但我无法生成一个。谢谢