作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一个 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/
我是一名优秀的程序员,十分优秀!