gpt4 book ai didi

javascript - Setinterval 口吃生成随机数序列

转载 作者:行者123 更新时间:2023-11-28 01:42:31 24 4
gpt4 key购买 nike

我正在尝试构建一个脚本集,随机生成 1 到 6 之间的数字,并仅在浏览器中显示该数字。一开始可以设置间隔值。我有一个代码可以完全满足我的要求。唯一的问题是区间不平滑。它不知何故结结巴巴。有人知道如何改进随机数流畅显示的代码吗?

<html>
<body>

<p style="font-size: 500; color: red; text-align: center" id="random_number"></p>

<script>

var interval = parseInt(prompt("Intervall [ms]:", ""));

fRandomNumbers(1,6);

window.setInterval(function(){fRandomNumbers(1,6)}, interval);

function fRandomNumbers(min,max)
{
var random_number = Math.floor( Math.random() * ( max - min + 1 ) ) + min;
document.getElementById("random_number").innerHTML = random_number;
}

</script>

</body>
</html>

最佳答案

就像 @CoreyOgburn 和 @Iwburk 指出的那样,问题是有时你会得到相同的数字:

You have a one in six chance of selecting the same number two times in a row and when that happens it looks like the number didn't change.

然后,要解决这个问题,只需确保新的随机数与前一个不同即可:

var interval = parseInt(prompt("Intervall [ms]:", "")),
random_number;

fRandomNumbers(1,6);

window.setInterval(function(){fRandomNumbers(1,6)}, interval);

function rand(min,max,diff) {
var n;
while(diff === (n = Math.floor( Math.random() * ( max - min + 1 ) ) + min)){}
return n;
}

function fRandomNumbers(min,max)
{
random_number = rand(min,max,random_number);
document.getElementById("random_number").innerHTML = random_number;
}

警告 1:上面的 rand 函数可能会产生无限循环,例如如果像 rand(1,1,1)

那样调用

警告 2:请注意,生成的数字序列不会是随机的,因为(足够大的)真正的随机序列将包含一些相等的相邻数字。然后,正如 @CoreyOgburn 指出的那样,它不能很好地模拟骰子。

关于javascript - Setinterval 口吃生成随机数序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20712496/

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