在指定範圍內生成隨機數

haqiu發表於2019-04-11

首先先了解一下Math的方法

  • Math.round(n) :四捨五入,返回n四捨五入後的整數
  • Math.floor(n): 向下取整,返回小於等於n的整數
  • Math.ceil(n):向上取整,返回大於等於n的整數
  • Math.random():隨機生成[0,1)的隨機數,0<= n < 1

1. minNum <= n <= maxNum

隨機生成的值可能包含最大、最小值

  function RandomNum (min, max) {
    let range = max - min
    return Math.round(Math.random()*range) + min
  }
複製程式碼

2. minNum <= n < maxNum

隨機生成的值可能包含最小值但不可能包含最大值

  function RandomNum (min, max) {
    let range = max - min
    return Math.floor(Math.random()*range) + min
  }
複製程式碼

3. minNum < n <= maxNum

隨機生成的值可能包含最大值但不可能包含最小值

  function RandomNum (min, max) {
    let range = max - min
    let num = Math.round(Math.random()*range)
    if (num === 0) {
      return min+1
    } else {
      return num + min
    }
  }
複製程式碼

4. minNum < n < maxNum

隨機生成的值既不包含最大值也不包含最小值

  function RandomNum(Min, Max) {
    let range = Max - Min;
    let num = Math.round(Math.random()*range)
    if (num === 0) {
      return Min+1
    } else if ( num === 8) {
      return Max-1
    } else {
      return num + Min
    }
  }
複製程式碼

相關文章