Existe-t-il un moyen simple de faire une sélection aléatoire à partir d'un tableau en JavaScript ou tout autre langage de programmation?
Je suis en train de lire un débutant en JavaScript livre avec un code qui compare les du codeur entrée (var réponse) pour un choisi au hasard chaîne à partir d'un tableau (les réponses). C'est un jeu de devinettes.
Je suis confus au sujet de la façon dont une chaîne est choisi au hasard. Le code semble être multipliant les Mathématiques.fonction de lecture aléatoire par les réponses de tableau et sa longueur de propriété. De contrôle autour, cela semble être la façon habituelle de procéder à une sélection aléatoire à partir d'un tableau? Pourquoi voudriez-vous utiliser un math de l'opérateur, l' *, de multiplier les...... une chaîne aléatoire basé sur un tableau de longueur? N'est-ce pas la longueur techniquement à seulement 3 cordes?
J'ai juste l'impression que ça devrait être quelque chose de simple comme
index = réponses.aléatoire. Ne qui existent en JS ou une autre langue?
<script>
var guess = "red";
var answer = null;
var answers = [ "red",
"green",
"blue"];
var index = Math.floor(Math.random() * answers.length);
if (guess == answers[index]) {
answer = "Yes! I was thinking " + answers[index];
} else {
answer = "No. I was thinking " + answers[index];
}
alert(answer);
</script>
source d'informationauteur nicedwar
Vous devez vous connecter pour publier un commentaire.
Il est facile en Python.
La raison pour laquelle le code que vous voyez est si commun est que, normalement, quand vous parlez d'une variable aléatoire dans les statistiques, il dispose d'une gamme de [0,1). Pensez-y comme un pour cent, si vous le souhaitez. Pour faire de ce pourcentage approprié pour le choix d'un élément aléatoire, vous multipliez par la gamme, permettant à la nouvelle valeur entre [0,la GAMME). Le
Math.floor()
veille à ce que le nombre est un entier, depuis les décimales ne faites pas de sens lorsqu'il est utilisé comme indices dans un tableau.Vous pouvez facilement écrire une fonction similaire en Javascript à l'aide de votre code, et je suis sûr qu'il ya beaucoup de JS utilitaire de bibliothèques qui incluent un. Quelque chose comme
Alors vous pouvez simplement écrire
choose(answers)
pour obtenir une couleur aléatoire.Math.random
vous donne un nombre aléatoire entre 0 et 1.Multipliant cette valeur par la longueur de votre tableau, vous donnera un nombre strictement inférieur à la longueur de votre tableau.
Appel
Math.floor
sur que sera tronquée de la virgule, et donnez-vous un nombre aléatoire dans les limites de votre tableauIci, vous allez
En Python, il est...
Populaire trait de Soulignement de la bibliothèque javascript offre la fonction de ce, qui peut être utilisé similaire à python est aléatoire.choix :
http://underscorejs.org/#sample
Math.random
et des fonctions similaires habituellement renvoie un nombre entre 0 et 1. En tant que tel, si vous multipliez le nombre aléatoire par votre plus haute valeur possibleN
vous vous retrouverez avec un nombre aléatoire entre 0 etN
.JavaScript
Pas. Vanilla JS ne fournit aucune méthode comme suit. Vous devez calculer, malheureusement.
Essayer ici.
Mais, si vous utilisez lodashla méthode ci-dessus est déjà couvert.
Essayer ici.
Python
Essayer ici.
Ruby
à l'aide d'un seul type de données,
à l'aide de plusieurs types de données,
Essayer ici.
Mis à jour: exemple en JavaScript ajouté.