【问题标题】:Random number for given counts给定计数的随机数
【发布时间】:2019-03-21 11:53:56
【问题描述】:

我正在使用Math.floor(Math.random() * 9999) 生成 4 位随机数。现在我有另一个要求。我必须得到要在文本框中生成的随机数的数量。 eg: If they enter 5 in textbox it has to return 5 four-digit random number. 知道怎么做吗?有参考吗?

【问题讨论】:

  • 顺便说一句,您需要10000 作为因素。
  • @NinaScholz 如果 'Math.random()' 返回 1,它将使其成为 5 位数字
  • 它永远不会返回1,请参阅Math.random

标签: javascript node.js angular typescript express


【解决方案1】:

只需调用该方法几次,具体取决于输入。请注意,您需要使用以下随机数创建方法而不是您的方法来保证 4 位数字。

function getRand() {
  return Math.floor(Math.random() * (9999 - 1000) + 1000);
}

document.getElementById('btn').addEventListener('click', () => {
  const length = document.getElementById('foo').value;
  const numbers = Array.from({length}, getRand); 
  
  document.getElementById('bar').innerText = numbers.join(', ');
});
<input id="foo" type="number">
<button id="btn">Get</button>
<div id="bar"></div>

【讨论】:

  • Array.from({length}, getRand) 是一个很棒的选择!
  • 太棒了。任何人都可以将其转换为打字稿格式吗?
  • 当然。你想用信用卡还是贝宝付款? @FelixChristo
【解决方案2】:

您可以简单地拨打您的4 digit random number generator function() n 次(n 是输入字段中的数字),如下所示:

for(let i=1;i<=this.n;i++) {
  this.ara.push(this.random());
}

random() {
  return Math.floor(Math.random()*(9999-1000) + 1000);
} 

参见this typescript 实现(Angular)。

【讨论】:

    【解决方案3】:

    使用 n = 5 和 high = 9999 调用 getRandoms。根据需要处理 5 元素返回数组。

    // pseudo-randomly generate an integer in the range low to high
    function getRandom( high, low ) {
        // default low is 0
        if ('undefined' == typeof low) low = 0;
        var range = high - low + 1;
        var r = Math.floor( range*Math.random() + .5);
        return Math.min(low + r, high);
    };
    
    // get n pseudo-random number in the range low to high
    function getRandoms( n, high, low ) {
        // default low is 0
        if ('undefined' == typeof low) low = 0;
        var randoms = new Array();    // initialize return
        for (var i = 0; i < n; i++) {
            randoms.push(getRandom(high, low));
        }
        return randoms;
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      相关资源
      最近更新 更多