美文网首页
指定范围取n个不同的数

指定范围取n个不同的数

作者: 凡凡的小web | 来源:发表于2024-05-15 18:37 被阅读0次
 public static getNUniqueNumbers(min, max, n) {
    if (min > max) {
      [min, max] = [max, min];
    }
    let range = max - min;
    if (range <= n) {
      return GameTool.getOrderArrByLen(range).map(item => { item + min })
    }
    let _arr = []
    for (let i = 0; i < n; i++) {
      let random = Math.floor(Math.random() * (range + 1))
      if (_arr.indexOf(random + min) === -1) {
        _arr.push(random + min)
      } else {
        let flag = true
        while (flag) {
          random++
          if (random >= range) {
            random = 0
          }
          if (_arr.indexOf(random + min) === -1) {
            flag = false
            _arr.push(random + min)
          }
        }
      }
    }

相关文章

网友评论

      本文标题:指定范围取n个不同的数

      本文链接:https://www.haomeiwen.com/subject/nwtbfjtx.html