Question

Je dois connaître l'effet des différentes plates-formes sur l'objet System.Random (Silverlight). La séquence a créé le même sur Mac, PC et sur 32 bits / 64 ans?

Était-ce utile?

La solution

L'algorithme pour générer les nombres aléatoires est codée dans le moteur d'exécution. Par conséquent, peu importe la plate-forme, vous devriez voir le même ensemble de nombres « aléatoires » pour une valeur de départ donné.

Le comportement extact de constructeur par défaut pour Random (où la valeur de départ est à base de temps) peut varier légèrement par rapport à la plate-forme plate-forme. Par exemple la création rapide des cas de Random peut créer certains cas qui génèrent la même séquence, la distribution de ces « doubles » peut varier sur toutes sortes de conditions, y compris la plate-forme.

Autres conseils

Excusez-moi « stupide » réponse, mais à mon avis, les numéros aléatoires devraient toujours être considérés comme au hasard et donc les séquences créées doivent être manipulés comme NOT mêmes pour tout « domaine ». Je sais que le .NET (ou Silverlight) générateurs de nombres aléatoires utilisent un algorithme pseudo-aléatoire en fonction de la valeur de départ et générer la même séquence de nombres en utilisant la même valeur de départ, mais je ne voudrais pas compter sur ce fait.

Il semble que vous avez une sorte de « attente » lorsque vous avez besoin d'avoir des nombres aléatoires synchronisées sur plusieurs plates-formes, et en utilisant un générateur de nombres aléatoires pour les séquences de valeur attendue semble bizarre pour moi.

Si vous pouvez nous en dire plus sur votre cas d'utilisation, nous pouvons peut-être trouver une autre solution plus solide?

Juste mon avis.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top