Frage Generiere Zufallszahlen zwischen zwei Zahlen in JavaScript


Gibt es eine Möglichkeit, eine Zufallszahl in einem bestimmten Bereich (z. B. 1 bis 6: 1, 2, 3, 4, 5 oder 6) in JavaScript zu generieren?


1243
2018-02-10 16:41


Ursprung


Antworten:


Wenn Sie zwischen 1 und 6 wählen wollten, würden Sie berechnen:

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

Woher:

  • 1 ist die Startnummer
  • 6 ist die Anzahl der möglichen Ergebnisse (1 + Start (6) - Ende (1))

1540
2018-02-10 16:45



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

Was es "extra" macht, sind zufällige Intervalle, die nicht mit 1 beginnen. So können Sie beispielsweise eine Zufallszahl von 10 bis 15 erhalten. Flexibilität.


1660
2017-08-29 09:25



Math.random ()

Von dem Mozilla Dokumentation zum Entwickler-Netzwerk:

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

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

Nützliche Beispiele:

// 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



Andere Lösungen:

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

75
2017-11-09 10:08



Die Funktion Math.random () gibt einen Fließkomma-Pseudo-Random zurück   Nummer im Bereich [0, 1); das heißt von 0 (einschließlich) bis aber nicht   einschließlich 1 (exklusiv)

Lasst uns add das min  randomly von 0 zu max-min

Fall 0

min + 0 * (max-min) = Mindest

Fall 1

min + 1 * (max-min) = max

Zufälliger Fall mit Math.random 0 <= r <1

min + r * (max-min) = X, woher X hat Reichweite von Mindest <= X < max

Das obige Ergebnis X ist eine zufällige Zahl. Aufgrund von Math.random () ist unsere linke Grenze jedoch inklusive, und die rechte Grenze ist exklusiv. Um unsere rechte Schranke einzuschließen, erhöhen wir die rechte Schranke um 1 und die Etage um das Ergebnis.

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

Um die Zufallszahl zu erhalten

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



Oder, in Unterstreichen

_.random(min, max)

14
2017-10-03 01:52



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

Zufällige Ganzzahl: um eine zufällige Ganzzahl zwischen zu erhalten min und max, benutze den folgenden Code

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

Zufällige Gleitkommazahl: um eine zufällige Gleitkommazahl zwischen zu erhalten min und max, benutze den folgenden Code

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

Referenz: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random


13
2018-01-25 04:33



Mathematik ist nicht meine Stärke, aber ich habe an einem Projekt gearbeitet, bei dem ich viele Zufallszahlen zwischen positiv und negativ generieren musste.

function randomBetween(min, max) {
    if (min < 0) {
        return min + Math.random() * (Math.abs(min)+max);
    }else {
        return min + Math.random() * max;
    }
}

Z.B

randomBetween(-10,15)//or..
randomBetween(10,20)//or...
randomBetween(-200,-100)

Natürlich können Sie auch eine Validierung hinzufügen, um sicherzustellen, dass Sie dies nur mit Zahlen tun. Stellen Sie außerdem sicher, dass min immer kleiner oder gleich max ist.


11
2018-03-20 21:23