¿Por qué combinaría Math.floor con Math.random?

¿Por qué alguien llamaría Math.floor a un resultado Math.random ? Lo he visto usado como:

 Math.floor(Math.random() * num); 

¿Alguien puede explicar por favor?

7 Solutions collect form web for “¿Por qué combinaría Math.floor con Math.random?”

Math.random devuelve un número de coma flotante entre 0 y 1.

Devuelve un número seudoaleatorio de punto flotante en el range [0, 1), es decir, de 0 (inclusive) hasta, pero sin include, 1 (exclusivo), que luego puede escalar al range deseado.

Al multiplicar esto por n, se obtiene un número de punto flotante entre 0 (inclusive) yn (exclusivo).

Math.floor se usa para convertir este número de coma flotante a un número integer entre 0 y n – 1 (inclusive).

Rompiendo Math.floor(Math.Random() * num) en sus piezas individuales y explicando cada pieza, obtienes esto:

Math.random() te da un número decimal aleatorio entre 0 y 1, incluido 0, pero sin include 1. Por lo tanto, podría darte algo como 0.38548569372 .

Math.random() * num te da un número decimal aleatorio entre 0 y num, incluyendo 0, pero sin include num. Entonces, si num era 10, podría darte 3.8548569372 .

Math.floor(Math.random() * num)) le da un número integer random entre 0 y num, incluyendo 0, pero sin include num. Entonces, podría darte 3 .

Math.floor() trunca el número decimal solo en la parte entera. Un número integer aleatorio se usa a menudo para get un valor aleatorio de una matriz (que debe ser un número integer).

Math.random() te dará un decimal largo y aleatorio. Lo que se suele hacer es multiplicar ese decimal por 10, 100, 1000, etc. para get un número integer random. Sin embargo, como ese decimal es tan largo, para get un número integer absoluto, usa Math.floor() para networkingondear ese número.

¿Por qué combinaría Math.floor With Math.random ?

Los combinas porque de lo contrario devolvería un flotador. Al usar Math.floor, se asegura de que sea un número integer dentro del range especificado.

Math.random devuelve un plano entre 0 y 1. Multiplicarlo por tu range num o max te da un valor con un máximo de ese número (1 * num ). Entonces, de nuevo, Math.floor simplemente está forzando que sea un número integer.


Entre bastidores:

RANDOM NUMBER -> .35 -> Multiplicado por max ( num ) de 11 -> Obtiene 3.85 -> Math.floor (3.85) -> 3.


Tenga en count que num es MAX + 1 . ¡Configurar num a 5 solo generará los numbers 1-4!


Puede consultar este enlace para get más información: http://www.javascriptkit.com/javatutors/randomnum.shtml

Tada 🙂

Math.random() devuelve algo como 0.8747230430599302 entre [0,1)

Usamos .floor para networkingondearlo al integer más cercano. Por ejemplo:

Math.random()*5 == 2.5889716914389282 Esto genera un número entre [0,5).

Math.floor(Math.random()*5) == 2 //in this scenario Genera un número entre [0,4]

Se usa para get un número integer aleatorio entre 0 y (max – 1).

Por otro lado, es más rápido de usar | 0 | 0 como en

 const randomInt = Math.random() * num | 0; 

El | 0 | 0 es un código binary o 0, cuya especificación de JavaScript dice efectivamente que el resultado se convierte en un número integer antes que el | sucede. Tenga en count que | 0 | 0 no es lo mismo que Math.floor . | 0 | 0 rondas a 0 mientras que Math.floor networkingondea hacia abajo.

  | 0 Math.floor ------+------+------------ 2.5 | 2 | 2 1.5 | 1 | 1 0.5 | 0 | 0 -0.5 | 0 | -1 -1.5 | =1 | -2 -2.5 | -2 | -3 
 var num = Math.floor(Math.random() * 1000); // eg 885 var flNum = Math.random() * 1000; //eg 885.9936205333221 

Pruebe Math.random () * 1000 por ejemplo, puede get algo como esto: 885.9936205333221, en muchos casos necesitamos un número networkingondeado, muchos desarrolladores lo usan con Math.floor o Math.ceil para get un integer como 885, si en tu caso, no te importa tener un número de flotador, déjalo como está …

Para get más información sobre el funcionamiento de Math.floor, consulte este enlace:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Math/floor

  • isNaN () javascript, número con 2 comas
  • Usar jQuery y Math.random () para seleccionar properties de objects nesteds
  • PHP equivalente a javascript Math.random ()
  • Aleatorio de mayúsculas / minúsculas en todos los caracteres de cadena
  • Comportamiento aleatorio extraño Javascript
  • JQuery - error aleatorio .replace ()
  • ¿Cómo get un número aleatorio de un dígito en javascript?
  • ¿Cómo reproducir música aleatoria en un sitio html?
  • Número aleatorio de Javascript con probabilidad ponderada
  • ¿Cree un número aleatorio entre -100 y 100 en JavaScript?
  • Genera una position aleatoria del elemento y evita la superposition en JavaScript
  • Escribe un método aleatorio verdaderamente incluyente para javascript
  • Operaciones bit a bit de 48 bits en Javascript?
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.