Maison > Article > interface Web > Explication détaillée des nombres générés aléatoirement et des méthodes de séquence JS
Cette fois, je vais vous apporter une explication détaillée de la méthode de génération aléatoire de nombres et de séquences dans JS Quelles sont les précautions concernant la génération aléatoire de nombres et de séquences par JS Voici des cas pratiques, prenons un. regarder.
•1.Math.random(); Le résultat est un nombre aléatoire compris entre 0 et 1 (y compris 0, excluant 1)
•2.Math.floor(num); est une valeur numérique, et le résultat de la fonction est la partie entière de num. Identique à la méthode parseInt(num) pour prendre des entiers.
•3.Math.round(num); Le paramètre num est une valeur numérique et le résultat de la fonction est l'entier après l'arrondi de num.
•4.Math.ceil(num); Renvoie le plus petit entier supérieur ou égal à n.
Utilisez raisonnablement la méthode ci-dessus pour générer un nombre aléatoire dans la plage spécifiée :
En incluant la valeur minimale mais pas la valeur maximale :
parseInt(num) arrondit le nombre entrant Convertissez num en un petit entier. Multipliez Math.random() par la différence entre le maximum et le minimum, traitez-le avec parseInt (notez que la plage à ce moment est [0-difference)), et ajoutez la valeur minimale, vous pouvez obtenir la valeur minimale mais pas la valeur entière maximale.
Pour obtenir un nombre aléatoire contenant la valeur minimale mais pas la valeur maximale, utilisez la fonction suivante :
function getRandom1(start, end) { var length = end - start; var num = parseInt(Math.random() * (length) + start); return num; }
Inclure la valeur maximale mais pas la valeur minimale :
Math.ceil(num)
Obtenez le plus petit entier supérieur ou égal à num, c'est-à-dire convertissez le num transmis en un grand entier. Multipliez Math.random() par la différence entre le maximum et le minimum, traitez-le avec Math.ceil() (notez que la plage à ce moment est (0-différence]), et ajoutez la valeur minimale, vous pouvez obtenir le minimum value excluant la valeur minimale mais incluant la valeur maximale de l'entier. Autrement dit, remplacez parseInt dans le cas ci-dessus par Math.ceil()
pour obtenir le nombre aléatoire qui contient la valeur maximale mais pas. la valeur minimale, et utilisez la fonction suivante pour l'implémenter :
function getRandom1(start, end) { var length = end - start; var num = Math.ceil(Math.random() * (length) + start); return num; }
Le cas où les valeurs maximales et minimales sont incluses :
Les valeurs maximales et minimales sont inclus À l'heure actuelle, la plage des valeurs possibles a été élargie de 1 par rapport aux deux cas ci-dessus. Lors de l'étape de numérotation, la plage des nombres aléatoires possibles doit être élargie de 1. Il est possible d'utiliser parseInt pour arrondir. en petites valeurs, et d'utiliser Math.ceil(num) pour convertir en grandes valeurs (quelle que soit la méthode utilisée, la clé est d'ajouter 1 à la plage pendant l'étape de génération de nombres aléatoires
Utilisez la méthode parseIntfunction getRandom1(start, end) { var length = end - start + 1; var num = parseInt(Math.random() * (length) + end); return num; }-------------------------------- ---------------- ---------------------------------- -------------
Parfois, il ne suffit pas de générer des nombres aléatoires. Vous devez également organiser les valeurs dans une plage spécifiée dans un ordre aléatoire. Nous transformons ce problème en génération. Les nombres aléatoires sont ajoutés au tableau pour éviter les problèmes de duplication. Les nombres générés dans chaque La séquence aléatoire peut être implémentée. directement via la méthode de tri. Une séquence contenant un ensemble d'éléments numériques disposés dans l'ordre est appelée. La méthode de tri est transmise dans une valeur générée aléatoirement (éventuellement positive) via la fonction (peut être négative), vous pouvez perturber l'ordre et obtenir. la séquence aléatoire du tableau comme suit : getNum() renvoie un tableau de nombres 1 à 10 disposés dans l'ordre, et le numArr obtenu est 1- Séquence aléatoire de 10 :
C'est également réalisable. pour écrire votre propre logique pour générer une séquence aléatoire :
Définissez un tableau pour stocker des nombres aléatoires, puis bouclez pour générer des nombres aléatoires, puis ajoutez-les au tableau existant. Recherchez, s'il existe, changez la marque. sur false pour indiquer que le nombre aléatoire généré est répété et décider de l'ajouter ou non au tableau en fonction de la valeur de la marque. Si l'ajout au tableau réussit, l'indice d'indice du tableau (indiquant le nombre d'éléments du tableau) sera. incrémenté, et la condition Quittez la boucle
L'exemple suivant implémente une séquence aléatoire entre 5 et 10 (le cas suivant inclut la gauche et la droite) :var numArr = getNum().sort(function () { return Math.random() - 0.5; });
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article, et il y aura des choses plus passionnantes. Veuillez faire attention aux autres articles connexes sur le site Web php chinois
Cela indique l'utilisation d'appeler et de postulerfunction getOrder(start, end) { var length = end - start; var myorder = new Array(); var index = 0; while (index < length+1) { var flag = true; var num = parseInt(Math.random() * (length + 1)); for (var i in myorder) { if (myorder[i] == num) { flag = false; } } if (flag == true) { myorder[index] = num; index++; } } alert(myorder.length); alert(myorder); } getOrder(5, 10);
Moins d'installation et d'utilisation Explication détaillée
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!