Maison > Java > javaDidacticiel > le corps du texte

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

WBOY
Libérer: 2023-05-11 09:49:05
avant
4211 Les gens l'ont consulté

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);
        }
    }
Copier après la connexion

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]的随机整数数。
Copier après la connexion

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

int num = random.nextInt(10+1);
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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] + "  ");
        }
  }
Copier après la connexion

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("游戏结束!");
    }
}
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal