Java Simple Programme De La Loterie
J'ai essayé de créer un simple programme de la loterie. Voici un problème: elle affiche toujours le même nombre. Par exemple j'ai eu 33 21 8 29 21 10
en sortie. A chaque fois que nombre aléatoire est généré, le code vérifie si le numéro est déjà généré, puis il crée un nouveau nombre aléatoire mais après qu'il ne contrôle pas encore. Je ne pouvais pas trouver un moyen de le faire.
public static void main(String[] args)
{
int[] lottery = new int[6];
int randomNum;
for (int i = 0; i < 6; i++)
{
randomNum = (int) (Math.random() * 50); //Random number created here.
for (int x = 0; x < i; x++)
{
if (lottery[i] == randomNum) //Here, code checks if same random number generated before.
{
randomNum = (int) (Math.random() * 50);//If random number is same, another number generated.
}
}
lottery[i] = randomNum;
}
for (int i = 0; i < lottery.length; i++)
System.out.print(lottery[i] + " ");
}
~
utilisation
J'ai essayé, mais j'ai obtenu des numéros en double à nouveau. Pourquoi est-ce arrivé?
do { newNumber = random(); } while(!oldNumbers.contains(newNumber))
utilisation
public static void main(String[] args) { Random random = new Random(); int randomNumber = random.nextInt(50)+1; ... }
J'ai essayé, mais j'ai obtenu des numéros en double à nouveau. Pourquoi est-ce arrivé?
OriginalL'auteur berkc | 2015-02-04
Vous devez vous connecter pour publier un commentaire.
Il y a 2 problèmes avec votre code:
lottery[i]
etrandomNum
sont les mêmes, il convient delottery[x]
lottery
.Ici est une version corrigée:
OriginalL'auteur Florent Bayle
Vous sont en train de changer le nombre aléatoire pendant que vous le vérifier. Vous avez besoin de choisir un nombre aléatoire et de vérifier s'il est présent ou non.
BTW UNE courte approche est d'utiliser un shuffle.
Collections.shuffle(list, new SecureRandom());
OriginalL'auteur Peter Lawrey
Une solution simple, entre le premier (qui pourrait être très abstrait pour un non programmeur Java) et le 2ème (pas d'assurer l'unicité du numéro de liste).
OriginalL'auteur marcS
essayer celui-ci, il crée 12 x (6 sur 45)
OriginalL'auteur James Wright