web-dev-qa-db-ja.com

特定の範囲の乱数を生成するにはどうすればよいですか?

Eclipseを使用してAndroidに乱数を生成し、TextViewフィールドに結果を表示するアプリを作成するにはどうすればよいですか?乱数は、ユーザーが選択した範囲内にある必要があります。したがって、ユーザーは範囲の最大値と最小値を入力してから、答えを出力します。

40
user3182651

ラーフル・グプタが言ったことを拡張するには:

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;
103
Fantômas
Random r = new Random();
int i1 = r.nextInt(45 - 28) + 28;

これは28(包括的)から45(排他的)の間のランダムな整数を与え、28,29、...、43,44のいずれかです

15

また、APIレベル21からこれが可能です。

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

「ユーザーは最大数と最小数を選択したユーザーですか?」この行はどういう意味ですか?

Java function int random = Random.nextInt(n)を使用できます。これは、range [0、n-1])のランダムなintを返します。

setText()メソッドを使用して、テキストビューで設定できます

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

したがって、次のものが必要になります。

int random;
int max;
int min;

...コードのどこかで、ユーザーが[送信]をクリックしたときにユーザーから最小値と最大値を取得し、次のコード行で使用するメソッドを配置します。

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

これにより、ユーザーが選択した最小値と最大値の間の乱数がランダムに設定されます。その後、次のことを行います。

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

If Randomを使用できます。たとえば、これは75〜100の乱数を生成します。

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

以下のコードは、指定された範囲内の2つの数値の間で乱数を生成するのに役立ちます。

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

Androidの乱数ジェネレーターAndroidの乱数ジェネレーターについて知りたい場合は、最後までこの記事をお読みください。ここでは、Androidの乱数ジェネレーターに関するすべての情報を取得できます。 Androidのランダム番号ジェネレーター

Javaファイルでこのコードを使用する必要があります。

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

この回答がお役に立てば幸いです。この記事について詳しく知りたい場合は、この記事をお読みください。 ランダム番号ジェネレーター

0
sumit singh