Necesito crear un aleatorio -1 o 1 para multiplicar un número ya existente por. Problema es que mi función aleatoria actual genera un -1, 0 o 1. ¿Cuál es la forma más eficiente de hacer esto?JavaScript Random Positivo o Negativo Número
Respuesta
No utilice su función existente - simplemente llame al Math.random()
. Si < 0,5 a continuación, -1, 1 cosa:
var plusOrMinus = Math.random() < 0.5 ? -1 : 1;
Sólo por el gusto de hacerlo:
var plusOrMinus = [-1,1][Math.random()*2|0];
o
var plusOrMinus = Math.random()*2|0 || -1;
pero el uso de lo que se cree que será fácil de mantener.
Por un lado, debo decir que hay algo que decir acerca de la legibilidad. Por otro lado, felicitaciones por quitarme 3 caracteres de mi respuesta (aunque podría argumentar que los 3 personajes son espacios en blanco innecesarios). El mío tiene 1 carácter más corto si también eliminas el '0' de '0.5'. :-) – ziesemer
Sí, solo por diversión. :-) – RobG
que es un pedazo de código! – egidiocs
Siempre he sido un fan de
Math.round(Math.random()) * 2 - 1
, ya que sólo una especie de sentido.
Math.round(Math.random())
le dará 0 o 1multiplicando el resultado por 2 le dará 0 o 2
y luego restando 1 le da -1 o 1.
¡Intuitivo!
Hay muchas maneras de hacerlo como muestran las respuestas anteriores.
El ser más rápida combinación de Math.round() y Math.random:
// random_sign = -1 + 2 x (0 or 1);
random_sign = -1 + Math.round(Math.random()) * 2;
También puede utilizar Math.cos() (which is also fast):
// cos(0) = 1
// cos(PI) = -1
// random_sign = cos(PI x (0 or 1));
random_sign = Math.cos(Math.PI * Math.round(Math.random()));
¿Por qué no intenta :
(Math.random() - 0.5) * 2
50% de posibilidades de tener un valor negativo con el beneficio adicional de tener un número al azar ber genera.
O si realmente necesita un -1/1:
Math.ceil((Math.random() - 0.5) * 2) < 1 ? -1 : 1;
- 1. Convierta un número negativo a uno positivo en JavaScript
- 2. ¿Cómo convertir un número negativo a positivo?
- 3. Ruby: ¿Cambiar el número negativo al número positivo?
- 4. número Parse con prefijo positivo/negativo de cadena en java
- 5. cómo cambiar un número positivo a negativo y viceversa?
- 6. nombres de los campos booleanos positivo o negativo
- 7. Recuperar un ángulo positivo o negativo de 3 puntos
- 8. dirección de memoria valor positivo o negativo en c?
- 9. Comprobando si un número es positivo o negativo usando operadores bit a bit
- 10. Cálculo de porcentaje negativo y positivo
- 11. Regex - Combinando lookbehind positivo y negativo
- 12. validación número positivo en jQuery
- 13. actualización positivo a un valor negativo en MySQL
- 14. ¿Producir flotación aleatoria del rango negativo al positivo?
- 15. Android: diferencia entre el botón positivo, negativo y neutral
- 16. ¿Puedo usar NLTK para determinar si un comentario es positivo o negativo?
- 17. MySql, ¿cómo puedo agrupar, en una consulta de selección en positivo o negativo?
- 18. Los métodos de afirmación de JUnit deben formularse en positivo o negativo.
- 19. new Date(). Time o new Date.getTime() devolviendo el número negativo?
- 20. Math.Exp del número negativo grande
- 21. longitud de objeto negativo posible en JavaScript o underscore.js? ¿sentido?
- 22. Devolver siempre el valor positivo
- 23. ostream: prefija un número positivo con un espacio
- 24. cómo buscar número negativo en sol?
- 25. Número negativo WPF TextBlock en rojo
- 26. emulador de Android: insertar número negativo?
- 27. Número de análisis con el sufijo negativo
- 28. Raíz cúbica del número negativo en python
- 29. Cálculo de la raíz cúbica de número negativo
- 30. ¿Cómo se calcula el ángulo positivo y el negativo entre dos líneas?
funciona perfectamente, divertido no pude encontrar una respuesta en cualquier lugar en línea. –
Buena solución elegante, gracias –