Java: créer une matrice aléatoire int) (int) ne peut être utilisé qu'une fois)
J'ai un tableau appelé arr
, avec la place pour 15 éléments.
J'ai besoin de placer les nombres de 1 à 15 dans un ordre aléatoire dans ce tableau.
Voici ce que j'ai essayé:
int[] arr = new int[15];
int i,j,k,n;
for (i = 0; i<15; i++) {
for (j=0; j<15; j++) {
n = (int)(Math.random() * 14 + 1);
if (rij[j] != n) {
rij[i] = n;
break;
}
}
}
Merci! 🙂
- Et le fait de faire ce que vous voulez?
- nan, sinon je n'aurais pas le poster :p
- La question signifie, que vous devez préciser quel est le problème: au moment de la Compilation d'erreur, d'exception, le message d'erreur, mauvais résultat (d'entrée, de sortie, ce qui serait attendu de sortie), pas de résultat, ...
Vous devez vous connecter pour publier un commentaire.
Utiliser un ArrayList et de le remplir avec des chiffres de 1 à 15.
Shuffle la liste.
De le convertir à une tableau.
Ce qui semble comme des devoirs (ou une question d'entrevue?). Si c'est le cas et que vous êtes tenus d'utiliser des tableaux plutôt que les méthodes intégrées avec la Java des Objets de Collection, (ou même si non, vraiment), la réponse est la Shuffle de Fisher-Yates algorithme
Modernes en place shuffle est:
(Je dois vérifier, mais je suppose que c'est ce que Java utilise sous le capot pour son
shuffle()
méthodes).Modifier parce que c'est amusant de mettre en œuvre des algorithmes:
En java, ce serait:
Et ... ce peut être optimisée à l'aide de la version de l'algo depuis que vous êtes désireux d'insérer une série de nombres dans un ordre aléatoire. Ce qui suit est la meilleure façon d'obtenir ce que vous avez déclaré vouloir faire comme il n'y a pas de copies supplémentaires fabriqués, comme lors de la création d'un
ArrayList
et de la copie de retour à un tableau.De faire comme ceci
Cela laissera les éléments mélangées au hasard dans un
Integer[]
, si c'est bien avec vous:Je vais faire quelque chose comme ceci:
D'abord créer un temporaire de la liste de tableaux remplis de chiffres du début à la fin, puis en utilisant de sélection aléatoire d'un nombre, le copier dans un tableau et de le retirer de la temp arraylist, répétez jusqu'à ce que la liste de tableaux est vide...