Question Générer un nombre aléatoire entre deux nombres en JavaScript


Existe-t-il un moyen de générer un nombre aléatoire dans une plage spécifiée (par exemple de 1 à 6: 1, 2, 3, 4, 5 ou 6) dans JavaScript?


1243
2018-02-10 16:41


origine


Réponses:


Si vous voulez obtenir entre 1 et 6, vous devez calculer:

Math.floor(Math.random() * 6) + 1  

Où:

  • 1 est le numéro de départ
  • 6 est le nombre de résultats possibles (1 + start (6) - fin (1))

1540
2018-02-10 16:45



function randomIntFromInterval(min,max)
{
    return Math.floor(Math.random()*(max-min+1)+min);
}

Ce qu'il fait "extra", c'est qu'il permet des intervalles aléatoires qui ne commencent pas par 1. Vous pouvez donc obtenir un nombre aléatoire de 10 à 15 par exemple. La flexibilité.


1660
2017-08-29 09:25



Math.random ()

Du Mozilla Documentation du réseau de développeurs:

// Returns a random integer between min (include) and max (include)

Math.floor(Math.random() * (max - min + 1)) + min;

Exemples utiles

// 0 -> 10
Math.floor(Math.random() * 11);

// 1 -> 10
Math.floor(Math.random() * 10) + 1;

// 5 -> 20
Math.floor(Math.random() * 16) + 5;

// -10 -> (-2)
Math.floor(Math.random() * 9) - 10;

189
2018-06-11 00:23



D'autres solutions

  • (Math.random() * 6 | 0) + 1
  • ~~(Math.random() * 6) + 1

75
2017-11-09 10:08



La fonction Math.random () renvoie un point flottant, pseudo-aléatoire   nombre dans l'intervalle [0, 1); c'est-à-dire de 0 (inclusivement) jusqu'à   dont 1 (exclusif)

Let's add la min  randomly de 0 à max-min

Cas 0

min + 0 * (max-min) = min

Cas 1

min + 1 * (max-min) = max

Cas aléatoire en utilisant Math.random 0 <= r <1

min + r * (max-min) = X, où X a une gamme de min <= X < max

Le résultat ci-dessus X est un nombre aléatoire. Cependant, en raison de Math.random (), notre limite gauche est inclusive et la limite droite est exclusive. Pour inclure notre limite droite, nous augmentons la limite droite de 1 et le résultat du plancher.

function generateRandomInteger(min, max) {
  return Math.floor(min + Math.random()*(max+1 - min))
}

Pour obtenir le nombre aléatoire

generateRandomInteger(-20, 20);


28
2018-04-03 11:45



var x = 6; // can be any number
var rand = Math.floor(Math.random()*x) + 1;

15
2018-02-10 16:46



Ou, dans Souligner

_.random(min, max)

14
2017-10-03 01:52



jsfiddle: https://jsfiddle.net/cyGwf/477/

Entier aléatoire: pour obtenir un nombre aléatoire entre min et max, utilisez le code suivant

function getRandomInteger(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
}

Numéro de point flottant aléatoire: pour obtenir un nombre à virgule flottante aléatoire entre min et max, utilisez le code suivant

function getRandomFloat(min, max) {
  return Math.random() * (max - min) + min;
}

Référence: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random


13
2018-01-25 04:33