Maison > Java > javaDidacticiel > le corps du texte

Comment puis-je générer des nombres aléatoires non répétitifs en Java ?

Mary-Kate Olsen
Libérer: 2024-11-09 10:01:02
original
740 Les gens l'ont consulté

How Can I Generate Non-Repeating Random Numbers in Java?

Approche Java pour générer des nombres aléatoires non répétitifs

Créer un ensemble de nombres aléatoires uniques en Java peut être un défi. Considérons le scénario suivant dans lequel nous devons remplir un tableau avec 10 000 entiers non répétitifs allant de 0 à 9999.

L'extrait de code suivant tente de résoudre ce problème à l'aide de la classe Random intégrée de Java :

import java.util.Random;
public class Sort {
    public static void main(String[] args) {
        int[] nums = new int[10000];

        Random randomGenerator = new Random();

        for (int i = 0; i < nums.length; ++i) {
            nums[i] = randomGenerator.nextInt(10000);
        }
    }
}
Copier après la connexion

Cependant, ce code peut produire des nombres en double en raison du risque de collisions lors de l'utilisation de l'opération modulo pour mapper le nombre aléatoire à la plage souhaitée. Pour garantir des numéros uniques, nous pouvons exploiter la classe Collections de Java.

Solution utilisant Java Collections.shuffle()

L'approche préférée pour générer des nombres aléatoires non répétitifs en Java consiste à utiliser la méthode Collections.shuffle(). Voici comment cela fonctionne :

  1. Créez un tableau de nombres (Integer[] arr).
  2. Utilisez Collections.shuffle(Arrays.asList(arr)) pour randomiser l'ordre des éléments dans le tableau.
  3. Le tableau aléatoire contient désormais des nombres uniques en raison du processus de brassage.

Par exemple, l'extrait de code suivant illustre cette méthode :

public static void main(String[] args) {
    Integer[] arr = new Integer[1000];
    for (int i = 0; i < arr.length; i++) {
        arr[i] = i;
    }
    Collections.shuffle(Arrays.asList(arr));
    System.out.println(Arrays.toString(arr));
}
Copier après la connexion

Cette approche garantit que chaque nombre du tableau est unique et répond à l'exigence de générer des nombres aléatoires non répétitifs.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal