gpt4 book ai didi

javascript - 尝试用一些规则用 1 到 2 之间的数字填充 9 个空格

转载 作者:行者123 更新时间:2023-11-30 11:31:36 25 4
gpt4 key购买 nike

我正在尝试用数字填充 9 个方框,这些数字可能是数字 1 或数字 2,因为数字 2 只能是 4 次而数字 1 应该填充其他 5 次...我知道这是一个简单逻辑的问题,但不知何故我无法达到我的目标......看看我的代码......

    <script type="text/javascript">
for (cicloTipo = 1; cicloTipo < 10; cicloTipo++) {
var tipo = Math.floor((Math.random() * 2) + 1);
document.write(tipo);
}
</script>

最佳答案

您可以从一个包含所需值的数组开始,然后将数组打乱顺序或从中随机选择值。有人说 Math.random 不是真正随机的,但它应该足够好。

以下使用拼接来选择值,因此循环向后迭代,因为拼接每次都会缩短源数组。

function getRandoms(){
for (var seed=[1,1,1,1,1,2,2,2,2], result=[], i=seed.length; i; i--) {
result.push(seed.splice(Math.random() * i | 0, 1)[0]);
}
return result;
}

// Show randomness of result
(function() {
var s = new Array(30).fill('+');
var r;
for (var i=9; i; ){
document.getElementById(--i).textContent = s.join('');
}

var j = 300; // Number of runs
var delay = 20; // Default delay in ms

function display(lag) {
delay = lag || delay;
getRandoms().forEach(function(v, i, rand) {
var el = document.getElementById(i);

if (v == 1) {
el.textContent = el.textContent.slice(0,-1);

// If run out of "+", add some to every line
if (!el.textContent.length) {
for (var k=0; k < 9; k++) {
document.getElementById(k).textContent += '++++++++++';
}
}

} else {
el.textContent += '+';
}

if (i == 0) {
document.getElementById('msg').innerHTML = 'Remaining: ' + j +
'<br>' + 'Values: ' + rand.join('');
}

});
--j;
if (j > 0) {
setTimeout(display, delay);
}
}
display(50);
}());

// Single call
// console.log(getRandoms().join());
<span id="0"></span><br>
<span id="1"></span><br>
<span id="2"></span><br>
<span id="3"></span><br>
<span id="4"></span><br>
<span id="5"></span><br>
<span id="6"></span><br>
<span id="7"></span><br>
<span id="8"></span><br>
<span id="msg"></span>

为了好玩,我添加了分布显示。每行代表结果数组中从 0 到 8 的一个值,并以一定数量的“+”符号开头。每次 1 在相关位置时,一个“+”被移除。每出现一个 2 的位置,就添加一个“+”。由于 1 的数量多于 2 的数量,因此行会慢慢变短。当一行变为零长度时,每行再添加 10 个“+”。

重要的部分是线条保持大致相等的长度,并且相同的线条在每次运行后不会最长或最短。如果您认为您看到了一种模式出现,则该模式必须至少持续运行 100 次才能显示偏差。

关于javascript - 尝试用一些规则用 1 到 2 之间的数字填充 9 个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46045198/

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