J'ai besoin de créer un nombre aléatoire -1 ou 1 pour multiplier un nombre déjà existant. Le problème est que ma fonction aléatoire actuelle génère un -1, 0 ou 1. Quel est le moyen le plus efficace de le faire ?
Réponses
Trop de publicités?
majman
Points
606
newe1344
Points
195
RobG
Points
41170
Nabil Kadimi
Points
2109
Il existe vraiment de nombreuses façons de le faire comme le montrent les réponses précédentes.
La plus rapide est la combinaison de Math.round() et Math.random:
// random_sign = -1 + 2 x (0 ou 1);
random_sign = -1 + Math.round(Math.random()) * 2;
Vous pouvez également utiliser Math.cos() (qui est également rapide):
// cos(0) = 1
// cos(PI) = -1
// random_sign = cos( PI x ( 0 ou 1 ) );
random_sign = Math.cos( Math.PI * Math.round( Math.random() ) );