我试图获得0到100之间的随机数.但是我希望它们是唯一的,而不是在序列中重复.例如,如果我得到5个数字,它们应该是82,12,53,64,32而不是82,12,53,12,32我使用它,但它在序列中生成相同的数字.
Random rand = new Random();
selected = rand.nextInt(100);
Run Code Online (Sandbox Code Playgroud) 我想在0-500范围内创建10个随机数.但问题是我希望这些数字是唯一的.对于2个随机数,我可以创建如下内容:
int randomItem1 = r.nextInt(500);
int randomItem2 = r.nextInt(500);
while(randomItem1==randomItem2){
randomItem1=randomItem();
randomItem2=randomItem();
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做10,我认为它会堆叠.而且我这样说是因为我正在尝试创建一个巨大的算法,它试图进行连续的评估,我想要不断地获取10个随机和唯一的数字.我不知道该怎么办.任何想法或建议?
我想在一个数组中生成6个数字,同时对它进行比较,因此它不会相同或没有重复数字.例如,我想以任何顺序生成1-2-3-4-5-6,最重要的是不重复.所以我想的是逐个比较生成的数组中的当前数组,如果数字重复,它将重新运行该方法并再次随机化一个数字,这样就可以避免重复数字.
这是我的代码:
import javax.swing.*;
public class NonRepeat
{
public static void main(String args[])
{
int Array[] = new int [6];
int login = Integer.parseInt(JOptionPane.showInputDialog("ASD"));
while(login != 0)
{
String output="";
for(int index = 0; index<6; index++)
{
Array[index] = numGen();
for(int loop = 0; loop <6 ; loop++)
{
if(Array[index] == Array[loop])
{
Array[index] = numGen();
}
}
}
for(int index = 0; index<6; index++)
{
output += Array[index] + " ";
}
JOptionPane.showMessageDialog(null, output);
}
}
public static int …Run Code Online (Sandbox Code Playgroud) 我使用随机数,我正在生成0到7之间的随机数.但是有一个问题:随机数有时会重复前一个数字.
我按下按钮生成一个随机数; 所以当点击按钮我有时真的得到一个不同的随机数,但有时它开始重复数字.举个例子:
单击按钮,有时数字在0-7范围内重复,如:
1-3-4-3-6-3-5-5
正如你所看到的,3重复多次,5也有两次出现.
因此,有两种不同类型的重复.我写了下面的代码,它应该杀死第二次重复(重复5次):
int randomNumber;
do {
randomNumber = random.nextInt(7 - 0 + 1) + 0;
} while (randomNumber == lastRandomNumber);
lastRandomNumber = randomNumber;
Log.d("RandomNumber","= "+randomNumber);
return randomNumber;
Run Code Online (Sandbox Code Playgroud)
现在我想要的是:
它跟踪最后一个随机数,但现在我想跟踪所有先前生成的随机数.但是我该怎么做呢?实现这一目标的最佳方式是什么?请指导我或分享一些代码.