关于android:如何在一定范围内生成随机数?

How can I generate a random number in a certain range?

如何创建一个使用Eclipse在Android中生成随机数的应用程序,然后在TextView字段中显示结果? 随机数必须在用户选择的范围内。 因此,用户将输入范围的最大值和最小值,然后我将输出答案。


延伸Rahul Gupta说的话:

您可以使用Java函数int random = Random.nextInt(n)
这将返回[0, n-1]范围内的随机int

即,要获得范围[20, 80]使用:

1
final int random = new Random().nextInt(61) + 20; // [0, 60] + 20 => [20, 80]

概括更多:

1
2
3
final int min = 20;
final int max = 80;
final int random = new Random().nextInt((max - min) + 1) + min;


1
2
Random r = new Random();
int i1 = r.nextInt(45 - 28) + 28;

这给出了28(包括)和45(不包括)之间的随机整数,28,29,...,43,44之一。


此外,从API级别21开始,这是可能的:

1
int random = ThreadLocalRandom.current().nextInt(min, max);


"用户是选择max no和min no的用户?"
这条线是什么意思?

您可以使用java函数int random = Random.nextInt(n)。这将返回范围[0,n-1]中的随机int。

您可以使用setText()方法在textview中设置它


1
2
3
private int getRandomNumber(int min,int max) {
    return (new Random()).nextInt((max - min) + 1) + min;
}

您可以使用If Random。例如,这会生成75到100之间的随机数。

1
final int random = new Random().nextInt(26) + 75;


所以你需要以下内容:

1
2
3
int random;
int max;
int min;

...代码中的某处将方法用于在用户单击提交时获取用户的最小值和最大值,然后在以下代码行中使用它们:

1
random = Random.nextInt(max-min+1)+min;

这将随机设置为用户选择的最小值和最大值之间的随机数。
然后你会做:

1
TextView.setText(random.toString());

下面的代码将帮助您在给定范围内的两个数字之间生成随机数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
private void generateRandomNumbers(int min, int max) {
    // min & max will be changed as per your requirement. In my case, I've taken min = 2 & max = 32

    int randomNumberCount = 10;

    int dif = max - min;
    if (dif < (randomNumberCount * 3)) {
        dif = (randomNumberCount * 3);
    }

    int margin = (int) Math.ceil((float) dif / randomNumberCount);
    List<Integer> randomNumberList = new ArrayList<>();

    Random random = new Random();

    for (int i = 0; i < randomNumberCount; i++) {
        int range = (margin * i) + min; // 2, 5, 8

        int randomNum = random.nextInt(margin);
        if (randomNum == 0) {
            randomNum = 1;
        }

        int number = (randomNum + range);
        randomNumberList.add(number);
    }
    Collections.sort(randomNumberList);
    Log.i("generateRandomNumbers","RandomNumberList:" + randomNumberList);
}

Android中的随机数生成器
如果你想知道android中的随机数生成器那么你应该阅读这篇文章直到最后。在这里,您可以获得有关android中随机数生成器的所有信息。 Android中的随机数生成器

您应该在java文件中使用此代码。

1
2
3
Random r = new Random();
                    int randomNumber = r.nextInt(100);
                    tv.setText(String.valueOf(randomNumber));

我希望这个答案可能对你有所帮助。如果您想了解有关本文的更多信息,那么您应该阅读本文。随机数发生器