Maison  >  Article  >  Java  >  Comment générer un entier aléatoire dans une plage spécifiée en Java

Comment générer un entier aléatoire dans une plage spécifiée en Java

WBOY
WBOYavant
2023-05-11 09:49:054163parcourir

1. Utilisez Math.random() pour générer un nombre aléatoire de type double [0.0, 1.0) (la valeur réelle est [0.0, 0.9999999])

Supposons que nous voulions générer un nombre aléatoire de [20, 80] Count , vous pouvez en obtenir 20, vous pouvez aussi en obtenir 80.
Générer un entier aléatoire compris entre [min, max]
Formule :
(int) (min + Math.random() * ( max - min + 1))

Cas de test : générer un [20, 80 ] Un entier aléatoire

	public static void main(String[] args) {
        for (int i = 1; i <= 80; i++) {
            int number = (int) (20 + Math.random() * (80 - 20 + 1));
            System.out.println(number);
        }
    }

peut imprimer les résultats des tests plusieurs fois plus.

Comment générer un entier aléatoire dans une plage spécifiée en Java

2. Créez un objet de classe Random et appelez la méthode nextInt() pour générer un nombre aléatoire

Exigence : générer un nombre aléatoire de 0 à 10, dont 0 et 10

Random random = new Random();
int num = random.nextInt(10); //这样写的话,生成[ 0,9]的随机整数数。

Si nous voulons inclure 0 et 10, nous devrions l'écrire comme ceci

int num = random.nextInt(10+1);

C'est-à-dire que le numéro de plage maximum entre parenthèses n'est en fait pas disponible, nous devons donc ajouter +1 entre parenthèses.
nextInt() génère une formule régulière entière aléatoire :

Exigence : générer un entier aléatoire dans la plage de [min, max], y compris min et max

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

Reportez-vous à l'exigence de générer une formule d'application entière aléatoire de [0 , 10] :

//生成【0,10】的随机整数
	Random random = new Random();
	int num = 0 + random.nextInt( 10 - 0 + 1);
//  int num = random.nextInt(11);

Code du cas de test :

  public static void main(String[] args){
        System.out.println("==========Random对象调用方法产生随机数===========");
        int[] arr2 = new int[5];
        Random random = new Random();
        //产生【1-10】的随机数
        for (int i = 0; i < arr2.length; i++) {
            arr2[i] = random.nextInt(10 + 1);
            System.out.print(arr2[i] + "  ");
        }
  }

Imprimez aléatoirement les données du test (les résultats sont aléatoires, vous pouvez l'exécuter plusieurs fois pour observer les résultats)

Comment générer un entier aléatoire dans une plage spécifiée en Java

Devinez le jeu des nombres

Le système au hasard génère un nombre aléatoire [1, 100], l'utilisateur saisit un nombre à partir de la console et les deux sont comparés s'ils ne sont pas égaux, l'utilisateur est invité à indiquer si le nombre qu'il a saisi est supérieur ou inférieur au nombre aléatoire généré par. le système.

import java.util.Scanner;

public class Demo18 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int randomNumber = (int) (1 + Math.random() * (100 - 1 + 1));
        int userNumber;
        while (true) {
            System.out.println("请输入您猜测的数字[1,100]:");
            userNumber = sc.nextInt();
            if (userNumber == randomNumber) {
                System.out.println("恭喜您猜对了");
                System.out.println("系统生成的随机数:" + randomNumber);
                break;
            } else if (userNumber > randomNumber) {
                System.out.println("您猜的数字偏大");
            } else {
                System.out.println("您猜的数字偏小");
            }
        }
        System.out.println("游戏结束!");
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer