gpt4 book ai didi

javascript - 每秒生成 0 到 100 之间的增量随机数,其中新数字应大于前一个数字

转载 作者:行者123 更新时间:2023-11-30 12:35:08 27 4
gpt4 key购买 nike

我需要一个 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);
})();

注意:数字应该是随机生成的。
示例结果可能是:2,5,7,8,22,23,34,56,78,88.....

最佳答案

您不应该在零和最大值 (i) 之间创建一个新的随机数,而应该在最后创建的数字 (lastNumber) 和最大值 ()。当随机数达到最大值时,您也可能想停止。

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();

至于评论和达到最大值之前的最小步数要求:

在每次迭代中,只需将数字增加一个介于 1 和 ((max - min)/steps 之间的随机值。它与上面的代码几乎相同.

var span = document.getElementsByTagName("span")[3],
max = 100,
min = 0,
lastNumber = 0,
minSteps = 30;

// how wide can the average step be at most?
var stepWidth = (max - min) / minSteps;

function randNumber() {

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

span.innerHTML = lastNumber;

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

randNumber();

关于javascript - 每秒生成 0 到 100 之间的增量随机数,其中新数字应大于前一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26297997/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com