如何用 JavaScript 在兩個數字之間生成一個隨機數

Moataz Farid 2023年10月12日
  1. 在 JavaScript 中生成 1 和使用者定義值之間的隨機數
  2. 用 JavaScript 在兩個數字之間生成一個隨機數
如何用 JavaScript 在兩個數字之間生成一個隨機數

本教程將學習如何用 JavaScript 在兩個數字之間生成一個隨機數。我們將使用 Math.random() 方法在 0.00.999 之間生成一個隨機浮動數。

在 JavaScript 中生成 1 和使用者定義值之間的隨機數

我們可以在 JavaScript 中使用隨機數生成器-Math.random(),通過將生成的浮點數與我們想要生成的最大數字相乘來生成一個隨機數。Math.random()* max 生成一個 0 和 max 之間的隨機數。

function generateRandom(max) {
  return Math.random() * max;
}

console.log('1st try: ' + generateRandom(5));
console.log('2nd try: ' + generateRandom(5));
console.log('3rd try: ' + generateRandom(5));
console.log('4th try: ' + generateRandom(5));

輸出:

1st try: 3.3202340813091347
2nd try: 1.9796467067025836
3rd try: 3.297605748406279
4th try: 1.1006700756032417

如果我們只想得到整數格式的結果,我們可以使用 Math.floor(),這個方法返回小於或等於輸入數的最大整數。

console.log(Math.floor(1.02));
console.log(Math.floor(1.5));
console.log(Math.floor(1.9));
console.log(Math.floor(1));

輸出:

1
1
1
1

通過使用 Math.floor() 方法,我們可以得到隨機生成的整數。

function generateRandomInt(max) {
  return Math.floor(Math.random() * max);
}

console.log('1st Integer try: ' + generateRandomInt(9));
console.log('2nd Integer try: ' + generateRandomInt(9));
console.log('3rd Integer try: ' + generateRandomInt(9));
console.log('4th Integer try: ' + generateRandomInt(9));

輸出:

1st Integer try: 8
2nd Integer try: 5
3rd Integer try: 7
4th Integer try: 0

用 JavaScript 在兩個數字之間生成一個隨機數

如果我們還想有一個使用者定義的最小值,我們需要將 Math.random() * max 的公式改為 Math.random() * (max-min)) +min。使用該等式,返回值是介於 minmax 之間的隨機數。

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

console.log('1st min and max try: ' + generateRandomInt(2, 9));
console.log('2nd min and max try: ' + generateRandomInt(2, 9));
console.log('3rd min and max try: ' + generateRandomInt(2, 9));
console.log('4th min and max try: ' + generateRandomInt(2, 9));

輸出:

1st min and max try: 6
2nd min and max try: 2
3rd min and max try: 8
4th min and max try: 3

如果我們有興趣讓 max 值包含在我們的隨機發生器範圍內,我們需要將等式改為 (Math.random() * (max+1 - min)) +min。在 max-min 上加 1 將包括範圍內的最大值,而 Math.floor() 將始終保證該值不超過 max

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

console.log('1st min and max included try: ' + generateRandomInt(2, 9));
console.log('2nd min and max included try: ' + generateRandomInt(2, 9));
console.log('3rd min and max included try: ' + generateRandomInt(2, 9));
console.log('4th min and max included try: ' + generateRandomInt(2, 9));

輸出:

1st min and max included try: 3
2nd min and max included try: 7
3rd min and max included try: 9
4th min and max included try: 6

相關文章 - JavaScript Number