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

如何拥有唯一的随机数?

汪皓
2023-03-14
问题内容

这就是我在1到6之间生成唯一编号并从drawable文件夹中获取适当图像的方式。

Random rand = new Random();
// n = the number of images, that start at idx 1
rndInt = rand.nextInt(6) + 1; 
String imgName = "card" + rndInt;
int id = getResources().getIdentifier(imgName, "drawable", getPackageName());
imgView.setImageResource(id);

我想要的是,我必须调用此方法7次,并且每次此方法应返回唯一的随机数。因此,所有已选择的数字都不会再次出现。


问题答案:

解决此类问题的常用方法是创建一个包含每个可能值的列表,并对其进行混洗(使用Collections.shuffle)。然后,每当您需要一个值时,便从列表中消费一项。这将确保您不会多次使用相同的值,但仍允许使用随机顺序。



 类似资料:
  • 问题内容: 我创建了以下方法,以便创建唯一的随机数。(此唯一值属于树的节点): 但这并不会创建唯一的数字,并且我的列表中仍然有重复的数字。喜欢 : 问题答案: 问题是,如果它发现重复的数字,您不会在检查函数中停止for循环。循环继续进行,b可以变回true。 例如,您应该做的是:

  • 问题内容: 我正在尝试获取一个随机数列表,并将其放入队列中,而不会重复任何随机数。 通过上面的代码,我得到了一些随机数的重复 有人知道怎么做吗? 问题答案: 这个怎么样: 在某个范围内“添加唯一的随机数”等效于将范围内的所有数字相加,然后对结果进行混排。

  • 问题内容: 我正在尝试获取0到100之间的随机数。但是我希望它们是唯一的,而不是在序列中重复。例如,如果我有5个数字,它们应该是82,12,53,64,32而不是82,12,53,12,32(我使用了这个数字),但是它在序列中生成相同的数字。 问题答案: Add each number in the range sequentially in a list structure. Shuffle i

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

  • 借助新的 Firebase API,您可以通过客户端代码将文件上传到云存储中。这些示例假定文件名在上传过程中是已知的或静态的: 或 随着用户上传自己的文件,名称冲突将成为一个问题。如何让Firebase创建文件名而不是自己定义?数据库中是否有类似于<code>push()的<code>功能来创建唯一的存储引用?

  • 问题内容: 我有一个简单的代码可以生成随机数 上面的方法被调用大约10次(不是循环的)。我想确保所有数字都是唯一的(假设)。 我可以确定每次呼叫都会得到唯一的号码吗?如果没有,我该如何解决? 编辑:我可能已经含糊其词了。我想避免手动检查,如果我真的有唯一的数字,所以我想知道是否有更好的解决方案。 问题答案: 有多种方法可以实现这一目标,哪种方法更合适,取决于您需要从多少个数字中选择。 如果要从大量