Quel est le moyen le plus rapide de générer un entier aléatoire en JavaScript?
Normalement, c'est comment vous obtenez un nombre aléatoire en javascript.
Math.random();
Toutefois, cette méthode semble être inefficace quand il s'agit de générer des entiers aléatoires.
Tout d'abord, la fonction de lecture aléatoire est de générer un décimal aléatoire, comme 0.1036098338663578alors, il doit être multiplié à une gamme adaptée (10.464593220502138). Enfin, la fonction floor soustrait le nombre de décimales pour produire le résultat (qui, dans ce cas, 10).
var random_integer = Math.floor(Math.random()*101);
Est-il un moyen plus rapide pour générer des entiers aléatoires dans le javascript?
Edit1:
Je me sers de ce pour la création d'un canvas HTML5 jeu. Le FPS est d'environ 50, et mon code est assez optimisé, en dehors de générer un nombre aléatoire.
source d'informationauteur user824294
Vous devez vous connecter pour publier un commentaire.
Ce code est plus rapide... de type.
De ne pas travailler pour de grands nombres.
(et il ne fait pas courir plus vite, au moins pas dans google chrome.)
Vous pouvait atteindre une plus grande vitesse de vitesse en cours de jeu si vous générer des nombres aléatoires à l'avance, si.
lookup
tourne à travers un tableau avec un million d'entiers aléatoires. Il est beaucoup plus rapide que d'appelerrandom
etfloor
(bien sûr, il y a un "temps de chargement" de pénalité à l'avant de générer la table de recherche).Si vous voulez éviter de virgule flottante de calcul alors vous pouvez le faire en écrivant votre propre pseudo générateur de nombre aléatoire. Ici est une liste de générateurs de nombres pseudo aléatoires (PRNG). Générateur linéaire à congruence est la plus simple à mettre en œuvre et sans doute plus efficace en termes de performance aussi. Cependant, vous devez comprendre le la théorie derrière PRNGs assez bien pour écrire une efficace. Qui pourrait ne pas être la peine de l'effort. La JS mise en œuvre devrait être assez efficace. À la fin il y a une forte probabilité que vous trouverez
Math.random()
est en cours d'exécution plus rapide que votre code.Est votre façon de faire la bonne façon de retrive un entier aléatoire dans javascript, ne vous inquiétez pas à propos de la performance, il va courir vite.
Non, il n'est pas plus facile ou le plus court chemin. Vous pouvez créer une fonction si vous avez besoin de le faire plusieurs fois, si.
j'utilise surtout