Question simple, mais je suis intéressé par les nuances ici.
Je génère des booléens aléatoires en utilisant la méthode suivante que j'ai moi-même mise au point:
const rand = Boolean(Math.round(Math.random()));
Chaque fois que random()
apparaît, il semble y avoir toujours un piège - ce n'est pas vraiment aléatoire, c'est compromis par quelque chose ou autre, etc. Donc, j'aimerais savoir:
a) Est-ce la meilleure pratique pour le faire?
b) Est-ce que je me prends trop la tête?
c) Est-ce que je ne réfléchis pas assez?
d) Existe-t-il une meilleure / plus rapide / plus élégante façon que je ne connais pas?
(Aussi un peu intéressé de savoir si B et C sont mutuellement exclusifs.)
Mise à jour
Si cela fait une différence, j'utilise ceci pour le déplacement d'un personnage AI.
43 votes
const rand = Math.random() < 0.5
est équivalent et plus simple.3 votes
Vous ne pouvez atteindre que pseudo-aléatoire, pas de vrai aléatoire.
1 votes
Rien n'est en fait aléatoire, le but est d'atteindre le plus près possible de l'aléatoire.
0 votes
Et si vous avez une chance de 50/50,
math.random
devrait suffire. Utilisez simplement les millisecondes pour votre graine.0 votes
Je pense que c'est assez aléatoire le moment où l'on visite un site Web :D donc j'ai eu cette idée...
Boolean(+Date.now()%2)
0 votes
Avec lodash -
!!_.random(1)
0 votes
@Hamms honte, vous avez répondu avant la réponse acceptée, mais la vôtre était un commentaire, donc le gars qui a écrit à peu près la même chose, comme réponse, a pris tous les points.
0 votes
La réponse acceptée donne également plus de détails que mon commentaire extrêmement peu élaboré.