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. dirección de memoria valor positivo o negativo en c?
- 7. Recuperar un ángulo positivo o negativo de 3 puntos
- 8. nombres de los campos booleanos positivo o negativo
- 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. ¿Producir flotación aleatoria del rango negativo al positivo?
- 14. actualización positivo a un valor negativo en MySQL
- 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. Los métodos de afirmación de JUnit deben formularse en positivo o negativo.
- 18. MySql, ¿cómo puedo agrupar, en una consulta de selección 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. Raíz cúbica del número negativo en python
- 26. emulador de Android: insertar número negativo?
- 27. Número negativo WPF TextBlock en rojo
- 28. Número de análisis con el sufijo negativo
- 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 –