Maison  >  Article  >  interface Web  >  Explication détaillée des étapes pour générer la randomisation de plage et la randomisation de séquence dans JS

Explication détaillée des étapes pour générer la randomisation de plage et la randomisation de séquence dans JS

php中世界最好的语言
php中世界最好的语言original
2018-05-23 14:36:381540parcourir

Cette fois, je vais vous apporter une explication détaillée des étapes de génération de randomisation de plage et de randomisation de séquence JS. Quelles sont les précautions pour la randomisation de plage de génération JS et la randomisation de séquence. Voici un cas pratique. jetez un oeil.

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 À ce stade, la plage des valeurs possibles a été élargie de 1 par rapport aux deux cas ci-dessus. Au stade numérique, il est nécessaire d'élargir la plage des nombres aléatoires possibles de 1. Il est possible d'utiliser parseInt. pour arrondir à de petites valeurs et 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 la duplication. problèmes. 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é 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 obtenez 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 le cas. Il est également possible d'écrire votre propre logique pour générer une séquence aléatoire :

Définissez un tableau pour stocker des nombres aléatoires, puis effectuez une boucle pour générer des nombres aléatoires, puis ajoutez-les au tableau existant. Recherchez, s'il existe, modifiez-le. 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
  var numArr = getNum().sort(function () {
        return Math.random() - 0.5;
      });
L'exemple suivant implémente une séquence aléatoire entre 5 et 10 (le cas suivant inclut la gauche et la droite) :

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 Lecture recommandée :

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);
Quels sont les moyens d'automatiser les formulaires Vue

Comment changer le mot de passe et afficher les informations personnelles dans 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