当前位置: 首页 > 面试题库 >

运行随机数并保持状态

闻人英韶
2023-03-14
问题内容

我使用以下代码从指定范围获取随机值

var provideRanges = function(){
    var aa = [];
    _.times(3, function(i) {
      console.log(i);
      let num = _.random(10, 20)
      console.log("num = :" + num)
      debugger;
      aa.push(num);
      console.log("value is :" + aa[i]);
    });
}

这是可行的,并在您调用此函数时在指定范围内提供3个值的数组,但是当我需要再次调用它时,这里的问题变得更加棘手,请忽略从提供的数字中排除 先前
提供的数字(例如下次不提供这些数字时提供10,11,12 …),还有更好的方法吗?我尝试使用回拨电话,但迷路了:(,任何想法该怎么做?


问题答案:

一种方法是创建一个数组来存储现有选择,将选定的元素推入数组,检查该数组是否包含该元素,以及数组存储的值.length是否大于或等于最大范围减去最小范围。

从问题的描述中尚不清楚,一旦返回范围中的所有元素,将发生什么?

var range = [10, 20];

var not = [];



function randomRange(range, n) {

  if (not.length >= range[1] - range[0]) {

    return "all numbers in range used"

  }

  var curr = [];

  var res = [];

  for (let i = range[0]; i < range[1]; i++) {

    if (!not.some(function(num) {

      return i == num

    }) && not.length < range[1] - range[0]) {

      curr.push(i)

    }

  }

  for (let i = 0; i < n; i++) {

    var j = curr.splice(Math.floor(Math.random() * curr.length), 1)[0];

    res[i] = not[not.length] = j;

  }



  return res.filter(Boolean)

}



console.log(randomRange(range, 3));

console.log(randomRange(range, 3));

console.log(randomRange(range, 3));

console.log(randomRange(range, 3));

console.log(randomRange(range, 3));


 类似资料:
  • HTTP协议是无状态的:每次请求都是一次新的请求,不会记得之前通信的状态 客户端与服务器端的一次通信,就是一次会话 实现状态保持的方式:在客户端或服务器端存储与会话有关的数据 存储方式包括cookie、session,会话一般指session对象 使用cookie,所有数据存储在客户端,注意不要存储敏感信息 推荐使用sesison方式,所有数据存储在服务器端,在客户端cookie中存储sessio

  • 我有一个概率问题: 在任何一天,埃里克要么是快乐的(C),要么是马马虎虎的(S),要么是闷闷不乐的(G)。 如果他今天很高兴,那么他明天将是C、S或G,相应的概率为0.5、0.3、0.2。 如果他今天感觉一般,那么他明天会是C,S或G,概率是0.3,0.4,0.3。 如果他今天闷闷不乐,那么他明天会是C,S或G,概率是0.2,0.2,0.6。 我在R中生成了50,000个独立的伪随机数(均匀的),

  • 问题内容: 如何在JavaScript中生成加密安全的随机数? 问题答案: 例如,您可以将鼠标移动用作随机数的种子,在onmousemove事件发生时读出时间和鼠标位置,将数据提供给美白功能,您将获得一些一流的随机性。尽管在使用数据之前请确保用户已充分移动鼠标。 编辑:我自己做了一个密码生成器来处理这个概念,我不能保证我的美白功能是完美的,但是不断地播种,我很确定它能胜任这一工作:ebusines

  • 我正在为我的列表使用滑动列表视图库。列表适配器正在使用视图持有者模式,一切正常。我设置向左轻扫,列表项视图下有一个后退视图。在这个后视图上,我有一个文本视图“删除”。单击后,正在执行删除操作。适配器中的数据正在刷新。行已删除 。但是“滑动状态”被设置在位置靠近删除的那一行的行上。我不相信它发生,因为转换视图记住了“滑动状态”。当我注释掉检查转换视图是否为空时,问题消失了,但列表滚动性能是不可接受的

  • 问题内容: 如何仅在Python中按行对多维数组进行混排(因此,请勿对列进行混排)。 我正在寻找最有效的解决方案,因为我的矩阵非常庞大。 是否还可以在原始阵列上高效执行此操作(以节省内存)? 例: 我现在期望的是原始矩阵: 输出将行而不是col随机播放,例如: 问题答案: 那是为了:

  • 我想让IntentService在后台运行,即使应用程序被终止。但如果我从最近的屏幕上删除我的应用程序,我的服务就会停止。我怎样才能避免这种情况?换句话说,即使我的应用关闭了,最近的应用也无法运行,我该如何保持我的服务运行? 我的前台服务: 我的常数: 我的清单: 当应用程序打开时,我看到服务正在运行。当我通过home按钮最小化应用程序时,它仍在运行。当我通过后退按钮关闭应用程序时,它仍在运行。但