2013-05-28 4 views
3

Je voudrais savoir quand, dans un environnement de navigateur, la méthode Javascripts math.random est ensemencée.Lorsque la méthode math.random Javascript est ensemencée

Est-il:

A) Lorsque l'ordinateur est allumé

B) Lorsque le navigateur est lancé pour la première fois une session

C) Chaque fois que le navigateur est lancé

D) Lorsque la page avec le code JS contenant math.random est ouverte pour la première fois

E) Chaque fois que la page conta ining math.random est ouvert

F) Lorsque la méthode math.random() est appelé pour la première fois

G) Autres

+0

Comme il est semé à partir de l'heure actuelle, quelle différence cela fait-il? Vous ne pouvez pas utiliser la différence entre A, B D ou F. –

+1

Le fait est que Math.random de JS est la seule bibliothèque aléatoire que je sais ne pas vous laisser définir la graine, ce qui est très regrettable. –

+0

@dystroy il est long à expliquer et mon anglais ne pouvait pas être assez précis pour le faire, mais la réponse pourrait être utile pour moi. Merci – user2426433

Répondre

1

De ECMAScript:

Retourne une valeur numérique avec signe positif, supérieur ou égal à 0 mais inférieur à 1, choisi de façon aléatoire ou pseudo-aléatoire avec approximativement distribution uniforme sur cette plage, en utilisant un algorithme ou stratégie dépendant de l'implémentation.

Donc, cela dépend du navigateur.

Comme il ne fait aucune différence pratique (tant que ce ne soit pas tête de série, tandis que vos pages courent) parce que la graine elle-même est kindof aléatoire (généralement basé sur l'horodatage du temps de semis), navigateur sont Documentations rares mais here's what Internet Explorer's one says:

Le générateur de nombres aléatoires est ensemencé automatiquement lorsque JavaScript est premier chargement.

Comme la plupart des autres stratégies pourraient induire des erreurs potentielles, je pense que vous pouvez supposer qu'il n'y aura pas une nouvelle ensemencement entre le premier appel à Math.random et la fermeture du navigateur.

+0

Bonne information. Alors, pensez-vous que lorsque vous fermez le navigateur et que vous l'ouvrez à nouveau, JS est chargé à nouveau et math.random est à nouveau amorcé? Avez-vous un lien pour les spécifications math.random Chrome et Firefox? Merci de votre aide. – user2426433

+0

La graine est "aléatoire" elle-même et le pseudo-générateur n'est pas ouvert, alors comment peut-il vous changer quelque chose? En ce qui concerne Firefox, ils disent que c'est basé sur l'horodatage mais ne donnent pas de détails et ils ne devraient pas donner de détails. –

Questions connexes