Javascript 每秒生成0到100之间的递增随机数,其中新的数字应大于上一个nymber

Javascript 每秒生成0到100之间的递增随机数,其中新的数字应大于上一个nymber,javascript,random,counter,increment,Javascript,Random,Counter,Increment,我需要一个javascript,在这里,每一次调用我都会得到一个0-100之间的随机数,其中当前数应该大于前一个数。我写了一段代码,每秒钟获取一个随机数,但我一直在用增量生成它 <script> var span = document.getElementsByTagName("span")[3]; var i = 100; (function randNumber() { var a = Math.floor((Math.random() * i) + 1);

我需要一个javascript,在这里,每一次调用我都会得到一个0-100之间的随机数,其中当前数应该大于前一个数。我写了一段代码,每秒钟获取一个随机数,但我一直在用增量生成它

<script>
var span = document.getElementsByTagName("span")[3];
 var i = 100;
(function randNumber() {
        var a = Math.floor((Math.random() * i) + 1);
        span.innerHTML = "RandNumber: " + a;
        setTimeout( randNumber, 1000);
})();

var span=document.getElementsByTagName(“span”)[3];
var i=100;
(函数号(){
var a=数学地板((数学随机()*i)+1);
span.innerHTML=“RandNumber:”+a;
设置超时(随机数,1000);
})();

注:数字应随机生成。

示例结果可能是:
2,5,7,8,22,23,34,56,78,88….
您不应该在零和最大值(
i
)之间创建新的随机数,而应该在上次创建的数(
lastNumber
)和最大值(
i
)之间创建新的随机数。 另外,当随机数达到最大值时,您可能希望停止

var span = document.getElementsByTagName("span")[3],
    i = 100,
    lastNumber = 0;
function randNumber() {

   lastNumber = lastNumber + Math.floor( Math.random() * (i - lastNumber) + 1 );

   span.innerHTML = lastNumber;

   if( lastNumber < i ) {
     setTimeout( randNumber, 1000 );
   }
}

randNumber();

您不应在零和最大值(
i
)之间创建新的随机数,而应在上次创建的数字(
lastNumber
)和最大值(
i
)之间创建新的随机数。 另外,当随机数达到最大值时,您可能希望停止

var span = document.getElementsByTagName("span")[3],
    i = 100,
    lastNumber = 0;
function randNumber() {

   lastNumber = lastNumber + Math.floor( Math.random() * (i - lastNumber) + 1 );

   span.innerHTML = lastNumber;

   if( lastNumber < i ) {
     setTimeout( randNumber, 1000 );
   }
}

randNumber();
如果像这样将“两个数字之间”的逻辑提取到它自己的函数中,这将变得容易得多。这样,您只需在上次生成的数字和最大值之间生成一个数字

var max = 100
var last_number = 1



var interval_id = setInterval(function(){
    last_number = get_random_number_greater_between(last_number, max)

    span.innerHTML = "RandNumber: " + last_number;

    if(last_number >= max){
        window.clearInterval(interval_id)
    } 
}, 1000)

function get_random_number_greater_between(low, high){
    return Math.floor(Math.random() * (high - low + 1) + low);
}
如果像这样将“两个数字之间”的逻辑提取到它自己的函数中,这将变得容易得多。这样,您只需在上次生成的数字和最大值之间生成一个数字

var max = 100
var last_number = 1



var interval_id = setInterval(function(){
    last_number = get_random_number_greater_between(last_number, max)

    span.innerHTML = "RandNumber: " + last_number;

    if(last_number >= max){
        window.clearInterval(interval_id)
    } 
}, 1000)

function get_random_number_greater_between(low, high){
    return Math.floor(Math.random() * (high - low + 1) + low);
}
试试这个:

//生成一个从0到max-1的随机数。
函数rand(最大值){
返回Math.floor(max*Math.random());
}
//从最小值到最大值生成一个随机数。
功能范围(最小、最大){
返回最小值+随机值(1+最大值-最小值);
}
//循环函数
函数next(n,回调){
var m=范围(n,100);
如果(m<100)设置超时(next,1000,m+1,回调);
回调(m);
}
var span=document.getElementById(“兰德”);
下一步(0,函数(m){
span.innerHTML=“随机数:”+m;
});
试试这个:

//生成一个从0到max-1的随机数。
函数rand(最大值){
返回Math.floor(max*Math.random());
}
//从最小值到最大值生成一个随机数。
功能范围(最小、最大){
返回最小值+随机值(1+最大值-最小值);
}
//循环函数
函数next(n,回调){
var m=范围(n,100);
如果(m<100)设置超时(next,1000,m+1,回调);
回调(m);
}
var span=document.getElementById(“兰德”);
下一步(0,函数(m){
span.innerHTML=“随机数:”+m;
});

如果第一个随机数是100怎么办?:)这是一个很好的问题,但它只是我模块的一部分,所以,即使我第一次得到100分,我的工作也完成了。但是是的,这是我的错,我没有提到出口部分。无论如何谢谢:)@JoachimIsaksson:如果我想让循环在退出之前返回至少30个随机数怎么办?怎么做?@RahulUkil不是增加到当前值和最大值之间的数字,而是增加1到d之间的随机数
(max-min)/steps
@Sirko你能给我代码吗?如果第一个随机数是100会怎样这是一个很好的问题,但它只是我模块的一部分,所以,即使我第一次得到100分,我的工作也完成了。但是是的,这是我的错,我没有提到出口部分。无论如何谢谢:)@JoachimIsaksson:如果我想让循环在退出之前返回至少30个随机数怎么办?怎么做?@RahulUkil不是增加到当前值和最大值之间的数字,而是增加1到d之间的随机数
(max-min)/steps
@Sirko你能给我代码吗?只是一个查询,在退出之前总是可以返回至少30个随机数,是的,你是对的,我只是被困在随机生成的数字,所以我问了关于这一点,当然它将有和退出部分感谢添加到您的代码。希望您的代码能在我的模块中正常工作。:)非常感谢:D你值得一杯啤酒:D你节省了我的时间。我只想在if条件中提到“i”应该被“max”替换为变量的名称:D非常感谢。只需一个查询就可以在退出前返回至少30个随机数,是的,你是对的,我只是被困在随机生成的数字,所以我问了关于这一点,当然它将有和退出部分感谢添加到您的代码。希望您的代码能在我的模块中正常工作。:)非常感谢:D你值得一杯啤酒:D你节省了我的时间。只是想在if条件中提到,变量的名称“i”应该替换为“max”:D,非常感谢。