webentwicklung-frage-antwort-db.com.de

Wie kann ich eine Zufallszahl in einem bestimmten Bereich generieren?

Wie kann ich mit Eclipse eine App erstellen, die in Android eine Zufallszahl generiert und das Ergebnis dann in einem TextView-Feld anzeigt? Die Zufallszahl muss in einem vom Benutzer ausgewählten Bereich liegen. Der Benutzer gibt also die maximalen und minimalen Werte des Bereichs ein und dann gebe ich die Antwort aus.

28
user3182651

Um zu erweitern, was Rahul Gupta gesagt hat:

Sie können die Java-Funktion int random = Random.nextInt(n) verwenden.
Dies gibt eine zufällige int im Bereich [0, n-1] zurück. 

Das heißt, um den Bereich [20, 80] zu erhalten, verwenden Sie:

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

Mehr verallgemeinern:

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

Dies ergibt eine zufällige ganze Zahl zwischen 28 (einschließlich) und 45 (exklusiv), eine von 28,29, ..., 43,44.

13

Ab API Level 21 ist dies auch möglich:

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

"der Benutzer ist derjenige, der max no und min no auswählt?" Was meinen Sie mit dieser Zeile?

Sie können die Java-Funktion int random = Random.nextInt(n) verwenden. Dies gibt ein zufälliges int im Bereich [0, n-1] zurück. 

und Sie können es in Ihrer Textansicht mit der setText()-Methode festlegen

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

Sie können If Random verwenden. Dies erzeugt beispielsweise eine Zufallszahl zwischen 75 und 100.

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

Der folgende Code hilft Ihnen dabei, Zufallszahlen zwischen zwei Zahlen im angegebenen Bereich zu generieren:

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

Zufallszahlengenerator in Android Wenn Sie den Zufallszahlengenerator in Android kennen lernen möchten, sollten Sie diesen Artikel bis zum Ende lesen. Hier können Sie alle Informationen zum Zufallszahlengenerator in Android erhalten. Zufallszahlengenerator in Android

Sie sollten diesen Code in Ihrer Java-Datei verwenden.

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

Ich hoffe, dass diese Antwort für Sie hilfreich sein kann. Wenn Sie mehr über diesen Artikel erfahren möchten, sollten Sie diesen Artikel lesen. Zufallszahlengenerator

0
sumit singh

Sie möchten also Folgendes:

int random;
int max;
int min;

... irgendwo in Ihren Code setzen Sie die Methode, um die Mindest- und Höchstwerte vom Benutzer zu erhalten, wenn sie auf "Senden" klicken, und verwenden Sie sie in der folgenden Codezeile:

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

Dadurch wird eine Zufallszahl zwischen den vom Benutzer ausgewählten Mindest- und Höchstwerten festgelegt ..__ Dann werden Sie Folgendes tun:

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