Maison  >  Article  >  interface Web  >  Explication détaillée de la méthode de génération de nombres aléatoires et de séquences aléatoires dans une plage spécifiée à l'aide de JS

Explication détaillée de la méthode de génération de nombres aléatoires et de séquences aléatoires dans une plage spécifiée à l'aide de JS

php中世界最好的语言
php中世界最好的语言original
2018-05-12 14:00:253616parcourir

Cette fois, je vais vous apporter une explication détaillée de la méthode de génération de nombres aléatoires et de séquences aléatoires dans une plage spécifiée avec JS Quelles sont les précautions pour générer des nombres aléatoires et des séquences aléatoires dans une plage spécifiée. avec JS Ce qui suit est un cas pratique. Jetons un coup d'œil.

En JavaScript nous utilisons souvent la méthode Math.random() pour générer des nombres aléatoires, mais les nombres aléatoires générés par cette méthode ne sont que des nombres aléatoires compris entre 0 et 1. Examinons d'abord les caractéristiques des méthodes couramment utilisées suivantes :

•1.Math.random(); Le résultat est un nombre aléatoire compris entre 0 et 1 (0 inclus, 1 exclu)

•2. Math.floor(num); Le paramètre 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 parseInt

function 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

boucle sont aléatoires et ajoutés au tableau afin d'obtenir un arrangement aléatoire des tailles numériques Séquence de nombres aléatoires dans la plage :

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 chinois de php

Lecture recommandée : Comment afficher les informations personnelles et changer le mot de passe dans vue

function 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);

Analyse du principe de réactivité des données de Vue

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn