簡體   English   中英

如何生成一定范圍內的隨機數?

[英]How can I generate a random number in a certain range?

如何使用 Eclipse 創建在 Android 中生成隨機數的應用程序,然后在TextView字段中顯示結果? 隨機數必須在用戶選擇的范圍內。 因此,用戶將輸入范圍的最大值和最小值,然后我將 output 答案。

擴展拉胡爾·古普塔 (Rahul Gupta) 所說的話:

您可以使用 Java 函數int random = Random.nextInt(n)
這將返回[0, n-1]范圍內的隨機int

即,要獲得范圍[20, 80]使用:

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

概括更多:

final int min = 20;
final int max = 80;
final int random = new Random().nextInt((max - min) + 1) + min;
Random r = new Random();
int i1 = r.nextInt(45 - 28) + 28;

這給出了一個介於 28(含)和 45(不含)之間的隨機整數,即 28,29,...,43,44 之一。

此外,從 API 級別 21 開始,這是可能的:

int random = ThreadLocalRandom.current().nextInt(min, max);
private int getRandomNumber(int min,int max) {
    return (new Random()).nextInt((max - min) + 1) + min;
}

“用戶是選擇 max no 和 min no 的人嗎?” 你說的這條線是什么意思?

您可以使用 java 函數int random = Random.nextInt(n) 這將返回范圍 [0, n-1] 中的隨機整數)。

你可以使用setText()方法在你的文本視圖中設置它

Android 中的隨機數生成器如果您想了解 android 中的隨機數生成器,那么您應該閱讀本文直至結束。 在這里您可以獲取有關 android 中隨機數生成器的所有信息。 Android 中的隨機數生成器

您應該在 java 文件中使用此代碼。

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

我希望這個答案對你有幫助。 如果您想閱讀有關本文的更多信息,那么您應該閱讀這篇文章。 隨機數發生器

所以你會想要以下內容:

int random;
int max;
int min;

...在您的代碼中的某處放置了在用戶單擊提交時從用戶那里獲取最小值和最大值的方法,然后在以下代碼行中使用它們:

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

這會將 random 設置為用戶選擇的 min 和 max 之間的隨機數。 然后你會這樣做:

TextView.setText(random.toString());

您可以使用 If Random 例如,這會生成 75 到 100 之間的隨機數。

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

下面的代碼將幫助您在給定范圍內的兩個數字之間生成隨機數:

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);
}

下面使用 function

public int generate_random(int min, int max) {
    return new Random().nextInt((max - min) + 1) + min;
}

只需將該代碼放入您的 java 文件中

public static int generateRandomNumber(int min, int max) {
    return new Random().nextInt((max- min) + 1) + min;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM