Javascript:随机数生成器(动态)



我想在我的网站上添加一个随机数生成器。这个想法是有一个代码,输出一个介于最小值和最大值(即 200-400 之间)的随机数,该数字实时更新,无需任何页面刷新。我遇到了这个问题,但我真的不需要,因为数字是在点击时生成的,而不是动态生成的(用户没有任何操作)。另外,如果我将范围设置为 400,将最小值设置为 230,则代码片段输出的数字甚至不在此范围内(即 580)。

最好不要随机显示数字(即 340,然后是

348,然后是 367,然后是 330、332、330、345、357 等)。但这不是强制性的。

谢谢你的帮助!

randWithVariation()取最小值和最大值以及其前一个值的最大偏移量,并返回一个您可以使用的函数。

function randWithVariation(min, max, variation) {
  var seed = (Math.floor(Math.random() * max) % (max - min)) + min; // attempts to keep the result within the bounds
  var min = min, max = max, variation = variation;
  var r = function() {
    var offset = Math.floor(Math.random() * variation);
    if (Math.random() < 0.5) offset *= -1; // chance that number will decrease
    seed += offset;
    if (seed < min) return max - seed; // also attempts to keep the result within the bounds
    if (seed > max) return min + (seed - max);
    else return seed;
  }
  return r;
}
var rand = randWithVariation(200, 400, 10);
document.getElementById('rnd').innerHTML = rand();
setInterval(() => {
  document.getElementById('rnd').innerHTML = rand();
}, 500);
<span id="rnd"></span>

这可以是一个选项:http://www.w3schools.com/code/tryit.asp?filename=FBVP9Q02RZFB

<!DOCTYPE html>
<html>
<body>
<p>Lots of random numbers</p>
<p id="demo"></p>
<script>
//returns a random number beetween min and max
function randMinMax(min , max) {
    return min + Math.floor((Math.random() * max));
}
function updateEveryXms(min , max, ms) {
    //start allredy with a random number instad of waiting ms
    document.getElementById("demo").innerHTML = randMinMax(min,max);
    //do it for ever and ever
    setInterval(
        function(){
            document.getElementById("demo").innerHTML = randMinMax(min,max);
        }, ms);
}
updateEveryXms(10 , 150, 1000);
</script>
</body>
</html>

最新更新