Supposons que j'ai un tableau/vecteur de nombres comme 1,3,7,9 alors j'ai besoin de deviner un nombre de cette liste au hasard. En utilisant la classe Random en Java, il semble impossible de le faire. Quelqu'un pourrait-il m'aider à dire un moyen de faire ce genre de chose? Je dois changer la liste des nombres utilisés pour générer un nombre aléatoire. J'essaie de mettre en œuvre une stratégie pour jouer au jeu de combat automatiquement comme une cession. Veuillez m'aider à faire cela?Comment générer un nombre aléatoire avec Java à partir d'une liste de nombres donnés
Répondre
Mettez les numéros dans un ArrayList et utilisez Collections.shuffle(arrayList);
Si vous voulez juste sélectionner un nombre aléatoire uniquement, ou si vous voulez sélectionner plusieurs nombres aléatoires avec la réinsertion (c.-à-permettre la possibilité de choisir le même nombre à plusieurs reprises), vous pouvez générer un index aléatoire:
List<Integer> lst = ....;
int index = new Random().nextInt(lst.size());
Integer randomeValue = lst.get(index);
Vous pouvez également utiliser un tableau. Cela nécessite O(1)
pour chaque sélection.
Si vous devez sélectionner plusieurs nombres aléatoires distincts dans la liste, l'utilisation de Collections.shuffle()
et l'itération de la liste constitueraient une meilleure solution. Cela nécessite O(n)
pour toutes les requêtes.
Merci pour vos réponses aimables. c'est vraiment utile –
Si vous avez besoin de plusieurs nombres aléatoires, n'oubliez pas de réutiliser la même instance aléatoire au lieu d'en ajouter une à chaque fois. –
Je suis avec tordek sur celui-ci: Le shuffling ne semble-t-il pas être un moyen assez lourd pour sélectionner un nombre configuré de nombres aléatoires d'un vecteur source?
Ne serait-il pas plus rapide de prendre simplement msaeed pour savoir comment choisir un nombre aléatoire et le répéter n fois? Peut-être assembler vos valeurs aléatoires comme un ensemble, et continuer à sélectionner jusqu'à ce que votre taille d'ensemble est assez grand ... (ne pas oublier une sorte de vérification de la condition de bord où il n'y a pas suffisamment de nombres dans le vecteur source pour fournir le nombre configuré de valeurs aléatoires)
- 1. Comment générer un nombre aléatoire en C#?
- 2. Nombre aléatoire entre 2 nombres doubles
- 3. Nombre aléatoire non répétitif
- 4. Générer un nombre de plages pour un ensemble aléatoire de valeurs
- 5. java servlet: générer un fichier zip à partir de BLOBs
- 6. ASP.NET Générer une table à partir d'une liste avec un nombre dynamique de lignes et de colonnes
- 7. Générateur de nombre aléatoire dans CUDA
- 8. Générer un terrain aléatoire dans Blender3D
- 9. Nombre entier aléatoire C++
- 10. Comparaisons de nombres Java
- 11. Fréquence de comptage dans une liste de nombres générée de manière aléatoire
- 12. Générer une série de nombres dans MySQL
- 13. Comment générer une série de nombres en PHP avec un incrément de 0.25?
- 14. liste aléatoire des règles
- 15. ArrayList de nombres entiers à un int?
- 16. Générateur de nombres pseudo-aléatoires à partir d'un nombre normal calculable
- 17. Pagination jQuery à partir des enregistrements donnés ID
- 18. Nombre hexadécimal généré de manière aléatoire en C#
- 19. Comment produire gamme avec l'étape n en bash? (Générer une séquence de nombres avec des incréments)
- 20. Passer un million de nombres de java à matlab?
- 21. Générer PCL à partir de PDF en Java
- 22. phrase aléatoire dans une liste
- 23. Nombre aléatoire: 0 ou 1
- 24. Comment prendre la graine pour un générateur aléatoire à partir de l'horloge, programmation en assembleur
- 25. JBoss: Comment générer un service Web à partir d'un WSDL?
- 26. Comment générer un journal des modifications à partir de Trac
- 27. Requête MySQL pour assigner un nombre aléatoire unique à chaque ligne
- 28. Convertir un nombre à une liste d'entiers
- 29. Conserver un nombre aléatoire parmi différentes fonctions dans Cocoa?
- 30. Java Génériques et nombres
Pourquoi prendre O (N) quand O (1) suffira? – Tordek
Mais dans mon cas, j'ai besoin de plusieurs hits à la fois. Habituellement jeu Battleship joué un par un hits, voici son modifiable à l'initialisation du jeu –