gpt4 book ai didi

javascript - 限制此随机数发生器中连续 "As"和 "Bs"的数量

转载 作者:行者123 更新时间:2023-12-02 19:33:19 25 4
gpt4 key购买 nike

一些folks帮助我构建了一个随机发生器:

function makeid() {
var text = "";
var possibleChars = "._";
var possibleLetters = "AB";

text += possibleLetters.charAt(Math.floor(Math.random() * possibleLetters.length));
for( var i=0; i < Math.floor(Math.random() * 3)+1; i++ )
text += " " + possibleChars.charAt(Math.floor(Math.random() * possibleChars.length));

return text;
}

for (var i=0; i < 20; i++)
$("body").append("<div>" + makeid() + "</div>");

它输出类似这样的内容:

B . .

B .

B _ _

A _ .

B .

A .

A _

B . .

A _

A _

B _ .

B . . .

B _

B _ .

我想修改上面的 JavaScript 代码,以便 A 和 B 不会连续重复两次以上:

A . .

B .

B _ _

A _ .

B .

A .

A _

B . .

A _

A _

B _ .

B . . .

A _

B _ .

有什么建议吗?

最佳答案

给你 - 不太漂亮,但应该可以工作(唉,没有测试过):

function makeid() {
var text = "";
var possibleChars = "._";
var possibleLetters = "AB";

while ( true ) {
var ch= possibleLetters.charAt(Math.floor(Math.random() * possibleLetters.length));
if ( this._prev1 != this._prev2 || this._prev1 != ch ) break;
}
this._prev2= this._prev1;
this._prev1= ch;
text += ch;

for( var i=0; i < Math.floor(Math.random() * 3)+1; i++ )
text += " " + possibleChars.charAt(Math.floor(Math.random() * possibleChars.length));

return text;
}

关于javascript - 限制此随机数发生器中连续 "As"和 "Bs"的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11260067/

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