Conseils utiles

Génération de nombres aléatoires en javascript

Pin
Send
Share
Send
Send


La génération de nombres aléatoires fractionnaires peut être effectuée à l'aide de la fonction ci-dessous:

Cette fonction prend deux arguments. Le premier est le nombre aléatoire minimum, et le second est le maximum.

Par exemple, si vous spécifiez - getRandomArbitrary (1, 10), vous obtiendrez ainsi un nombre de l'ordre de 1 à 10, qui ressemblera à quelque chose comme ceci: 5.63726842 ou similaire à 9.27647264, etc.

Si vous avez besoin d'un entier, reportez-vous à la fonction ci-dessous.

Comment générer des nombres aléatoires en JavaScript

Les nombres aléatoires sont souvent utilisés dans des cas tels que, par exemple. peu importe. Problème de méthode Math.random ()Ce que nous allons utiliser est qu’elle génère un nombre décimal long, presque inutile, de la forme 0.77180239201218795. Ici, vous apprendrez comment utiliser d'autres méthodes de l'objet. Maths pour obtenir un entier dans une plage donnée.

L'article suppose que vous connaissez suffisamment le langage HTML et JavaScript pour suivre les instructions qu'il contient. Sinon, il existe de nombreux sites où vous pouvez suivre une formation. Avec un peu d'effort, vous pourrez revenir à cet article après un certain temps.

Génération de base

Le moyen le plus simple d’obtenir un nombre aléatoire est avec une méthode Math.random ()intégré dans javascript.

Math.random () renvoie toujours un nombre à virgule flottante compris entre 0 et 1.

Techniquement, le nombre que vous obtenez peut être 0, mais il ne sera jamais exactement 1.

Comme il est utilisé assez souvent, Math.random () mettre à l'intérieur de la fonction

fonction getRandom () <
retourne Math.random (),
>

Le problème, bien sûr, est que la fonction créera toujours un nombre aléatoire dans une plage très limitée. La plupart des autres recettes sur cette page sont conçues pour résoudre ce problème.

Génération entre nombres: valeurs minimales et maximales

Pour ajouter cette fonctionnalité, il nous faut un peu de math.

fonction getRandomFloat (min, max) <
retourne Math.random () * (max - min) + min,
>
getRandomFloat (11, 101)
> 75.31898734299466

fonction getRandomInt (min, max) <
retourne Math.floor (Math.random () * (max - min)) + min,
>

getRandomInt (10, 20)
> 12

Coin flip (vrai ou faux aléatoire)

Si vous ne voulez obtenir que 0 ou 1, utilisez le code suivant:

fonction coinToss () <
renvoyer Math.floor (Math.random () * 2),
>
coinToss (),
> 0

Si vous avez besoin spécifiquement vrai ou faux

fonction coinToss () <
return (Math.floor (Math.random () * 2) === 0),
>
coinToss (),
> vrai

Si vous devez associer des mots aux côtés de la pièce

fonction coinFlip () <
return (Math.floor (Math.random () * 2) === 0)? "up": "down",
>
coinToss (),
> up

Fonction aléatoire correcte

Comme vous pouvez le constater à partir des exemples ci-dessus, il serait intéressant de créer la fonction aléatoire correcte à utiliser pour toutes les cibles entières aléatoires.

La fonction JavaScript retourne toujours un nombre aléatoire entre min (inclus) et max (exclu):

La fonction JavaScript renvoie toujours un nombre aléatoire compris entre min et max (les deux sont inclus):

Génération d'exception

Pour un nombre limité d’entiers: créez un tableau de nombres que vous souhaitez dessiner, puis sélectionnez-en au hasard.

var numPool =,
rand = numPool [Math.floor (Math.random () * numPool.length)],

Pour quelque chose de plus dynamique: ajoutez un tableau d'entiers que vous voulez exclure, et un tableau vide qui contiendra le résultat du filtrage du premier tableau dans le second.

var numPool =,
var excludePool =,
var filterPool = [],

Puis créez une boucle dans le tableau numPoolvérifie s'il y a un nombre aléatoire dans le tableau d'exceptions excludePoolet mettre le résultat dans un tableau filtré:

Enfin, affichez un nombre aléatoire à partir du tableau filtré

var rand = filterPool [Math.floor (Math.random () * FilterPool.length)],

Génération aléatoire de nombres non répétitifs

Pour les petits ensembles de nombres: créez un tableau rempli d'éléments, mélangez-les au hasard, placez le résultat dans un nouveau tableau, puis récupérez les éléments mélangés une fois:

var numPool =,

fonction shuffle (numPool) <
pour (var j, x, i = numPool.length, i, j = parseInt (Math.random () * i), x = numPool [- i], numPool [i] = numPool [j], numPool [j ] = x),
renvoyer numPool,
>,
var randomResult = shuffle (numPool),
while (randomResult.length> 0) <
console.log (randomResult.pop ()),
>

Pour des ensembles de nombres plus importants: créez et remplissez le tableau avec des entiers aléatoires, en rejetant ceux générés précédemment:

var numReserve = []
tandis que (numReserve.length

Dans le code ci-dessus numReserve rempli avec 12 nombres aléatoires compris entre 0 et 1000. Les nombres peuvent alors être obtenus à partir du tableau.

Cryptographie

Toutes les méthodes présentées ci-dessus ne seront pas suffisantes pour créer des fonctions sécurisées de manière cryptographique. Pour cela, nous pouvons utiliser API de cryptographie Weben créant un tableau typé:

var cryptoStor = new Uint16Array (8),

Dans ce cas, nous créons un tableau avec 8 emplacements différents, chacun pouvant contenir un entier non signé de 16 bits. D'autres options incluent Int8array, Uint8Array, int16Array, Int32array et Uint32Array.

Maintenant remplissez le tableau avec des nombres aléatoires d'un certain type

Les valeurs sélectionnées sont affichées dans la console:

> [43484, 57947, 46691, 49849, 24272, 11827, 28203, 17423]

API de cryptographie Web Il a un bon support dans les navigateurs modernes, bien que certains doivent être préfixés.

La copie de documents est autorisée uniquement avec l'indication de l'auteur (Mikhail Rusakov) et un lien direct indexé vers le site (http://myrusakov.ru)!

Ajoute moi comme ami VKontakte: http://vk.com/myrusakov.
Si vous souhaitez évaluer mon travail et mon travail, écrivez-le dans mon groupe: http://vk.com/rusakovmy.

Si vous ne voulez pas manquer de nouveaux matériaux sur le site,
alors vous pouvez s'abonner aux mises à jour: S'abonner aux mises à jour

Si vous avez des questions ou si vous souhaitez parler de cet article, vous pouvez laisser un commentaire au bas de la page.

Recommander cet article à des amis:

Si vous avez aimé le site, alors postez un lien vers celui-ci (sur votre site, sur le forum, en contact):

Cela ressemble à ceci:

  • Code BB du lien pour les forums (par exemple, vous pouvez le mettre dans la signature):
  • Commentaires (4):

    Bonjour Une question peut-elle être hors sujet?

    Bien sur que tu peux! Mais demandez-le, s'il vous plaît, au service d'assistance: http://support.myrusakov.ru/

    Merci beaucoup La prochaine fois, déjà répondu à javascript.ru

    Génial! Heureux pour toi!

    Vous devez être connecté pour ajouter des commentaires.
    Si vous n'êtes pas inscrit sur le site, inscrivez-vous d'abord.

    Copyright © 2010-2019 Rusakov Mikhail Yuryevich. Tous droits réservés.

    Top 10 des exemples

    SchoolsW3 est optimisé pour la formation, les tests et la formation. Les exemples simplifient et améliorent la lecture et la compréhension de base. Les manuels scolaires, les ouvrages de référence, les exemples sont constamment révisés. Afin d'éviter les erreurs, il n'est pas possible de garantir l'exactitude de tout le contenu. En utilisant ce site, vous acceptez de lire et d'accepter les conditions d'utilisation, les cookies et la politique de confidentialité. Copyright 1999-2019 Tous droits réservés.
    Cela fonctionne sur le style de W3.CSS.

    Des nombres entiers

    Pour créer un entier en JavaScript, vous pouvez utiliser la fonction ci-dessous:

    Cette fonction prend les mêmes valeurs que la fonction ci-dessus. La seule différence est qu'il renvoie un entier aléatoire.

    Par exemple, si vous avez besoin d’un nombre aléatoire compris entre 50 et 100, vous pouvez l’obtenir comme ceci: getRandomInt (50, 100) et vous obtiendrez un entier (par exemple: 55 ou 90, etc.).

    Pin
    Send
    Share
    Send
    Send