JAVA/ANDROID-如何生成一个新的随机数,而不使其与以前的随机数相同?

JAVA/ANDROID-如何生成一个新的随机数,而不使其与以前的随机数相同?,java,android,random,numbers,Java,Android,Random,Numbers,我用random random=new random()生成2个随机数生成一个随机和。代码: int min = 5, max = 20 randomNum = random.nextInt((max - min) + 1) + min; randomNum1 = random.nextInt((max - min) + 1) + min; 然后我显示如下所示的总和: TextView sumText = (TextView) findViewById(R.id

我用
random random=new random()生成2个随机数
生成一个随机和。代码:

    int min = 5, max = 20
    randomNum = random.nextInt((max - min) + 1) + min;
    randomNum1 = random.nextInt((max - min) + 1) + min;
然后我显示如下所示的总和:

    TextView sumText = (TextView) findViewById(R.id.sumText);
    sumText.setText(randomNum + " + " + randomNum1 + " =");
总和下面是一个
EditText
,然后当我输入答案时,它会检查答案是否正确,如果正确,它会重复上面的所有代码,从而生成一个新的总和。 然而,我仍然有一个问题。有时生成总和时,它会生成与旧总和相同的总和。我怎样才能让它生成一个新的和,而不与前一个和相同?我想我应该用
while
命令做些什么,但我不确定

public class Test {

    Random random;
    private int min = 5, max = 20;

    int num1;
    int num2;

    public Test(){
        random = new Random();
        num1 = random.nextInt((max - min) + 1) + min;
        num2 = random.nextInt((max - min) + 1) + min;
    }

    public int getSum(){
        return num1 + num2;
    }

    @Override
    public boolean equals(Test obj) {
        return this.getSum() == obj.getSum();
    }
}
//主类

Test t1 = new Test();
Test t2 = new Test();

while(t2.equals(t1)){
    t2 = new Test();
}

您可以有一个实用程序类,它可以有一个唯一的数字生成器。像这样,

import java.util.*;
import java.lang.*;
import java.io.*;

class RandomNumberGenerator
{
    private int min = 5, max = 20;
    private List<Integer> randomList = new ArrayList<Integer>();

    private Random random = new Random();

    public int getNextRandomNumber() {

        int randomNum = random.nextInt((max - min) + 1) + min;
        if(randomList.contains(randomNum)) {
            randomNum = getNextRandomNumber();
        }
        randomList.add(randomNum);
        return randomNum;
    }

    public static void main (String[] args) throws java.lang.Exception
    {
        // you can use this piece of code anywhere to generate 
        // random numbers using the utility method of RandomNumberGenerator

        RandomNumberGenerator randomNumberGenerator = new RandomNumberGenerator();
        int randomNum = randomNumberGenerator.getNextRandomNumber();
        int randomNum1 = randomNumberGenerator.getNextRandomNumber();

        System.out.println(randomNum);
        System.out.println(randomNum1);



    }
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
类随机数发生器
{
私有整数最小值=5,最大值=20;
private List randomList=new ArrayList();
私有随机=新随机();
public int getNextRandomNumber(){
int randomNum=random.nextInt((最大-最小)+1)+min;
if(randomList.contains(randomNum)){
randomNum=getNextRandomNumber();
}
添加(randomNum);
返回随机数;
}
公共静态void main(字符串[]args)引发java.lang.Exception
{
//您可以在任何地方使用这段代码来生成
//使用RandomNumberGenerator实用方法的随机数
RandomNumberGenerator RandomNumberGenerator=新的RandomNumberGenerator();
int randomNum=randomNumberGenerator.getNextRandomNumber();
int randomNum1=randomNumberGenerator.getNextRandomNumber();
System.out.println(randomNum);
系统输出打印项数(随机数m1);
}
}

如果您只是将其更改为以下内容,那么这应该很简单:

int min = 5, max = 20;
randomNum = random.nextInt((max - min) + 1) + min;
do {
    randomNum1 = random.nextInt((max - min) + 1) + min;
} while(randomNum == randomNum1);
编辑:您只需要存储以前的总和,然后

List<Integer> sums = new ArrayList<Integer>();
randomNum = random.nextInt((max - min) + 1) + min;
do {
    randomNum1 = random.nextInt((max - min) + 1) + min;
} while(sums.contains(randomNum+randomNum1));
sums.add(randomNum + randomNum1);
List sums=new ArrayList();
randomNum=random.nextInt((最大-最小)+1)+min;
做{
randomNum1=random.nextInt((最大-最小)+1)+min;
}while(sums.contains(randomNum+randomNum1));
加法(随机数+随机数m1);

如果指定随机数不能具有某些属性,则它不再是随机数。你的问题真的是“如何生成两个不同的随机数”?我生成一个随机和,有人可以回答,然后我检查它是否正确。然后我想做一个新的相同的总数。它是针对android的。。。我是个初学者,所以我在main函数中写了这个评论。android中的类和对象就是java中的类和对象。你们唯一拥有的就是资源和额外的清单。在android中,您还将创建类,您可以创建这些类的实例并使用它。所以,无论main中写了什么,都可以使用RandomNumberGenerator。无论你想在哪里使用它,都要使用它。对不起,你把我的问题理解错了
randomNum
randomNum1
可以相同。如果有人输入了正确的总和答案,它会再次生成
randomNum
randomNum1
,并且该总和必须与之前生成的总和不同。