生成具有相关概率的随机字符串
Generate Random String with Dependent Probability
使用 JavaScript
或 jQuery
,我正在尝试创建一个依赖 probability
的 string
生成器。
例如,如果我第一次生成 "doctor",则不会出现其他 "doctors"。它会转到另一个 url
,例如 "pimp"。一旦所有 string
个名称都被使用,它将再次生成一个完全随机的名称,直到接下来的 6 个没有重复,依此类推。
对于上下文,这里是code
我到目前为止的独立概率(只是随机字符串):
$("button").click(function() {
var urls = [
"mafia",
"doctor",
"cupid",
"mafioso",
"pimp",
"detective"
];
var url = urls[Math.floor(Math.random() * urls.length)];
$("#log").append(url + "<br>"); // append url to log
var last = $("#log").split("<br>").pop(); // get last part
var text = urls.replace(last, ""); // replace in the array, hopefully
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>Generate</button><br>
<div id="log"></div>
任何想法,甚至是实现依赖 probability
的步骤,我都会欣然接受。提前致谢!
尝试在拾取时从数组中删除随机选择的项目,如果数组的长度为0,则将其重置为原始数组:
var origURLs = [
"mafia",
"doctor",
"cupid",
"mafioso",
"pimp",
"detective"
];
var currURLs;
$("button").click(function() {
if (!currURLs || currURLs.length === 0) currURLs = [...origURLs];
const randIndex = Math.floor(Math.random() * currURLs.length);
const url = currURLs.splice(randIndex, 1)[0];
$("#log").append(url + "<br>");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Generate</button><br>
<div id="log"></div>
使用 JavaScript
或 jQuery
,我正在尝试创建一个依赖 probability
的 string
生成器。
例如,如果我第一次生成 "doctor",则不会出现其他 "doctors"。它会转到另一个 url
,例如 "pimp"。一旦所有 string
个名称都被使用,它将再次生成一个完全随机的名称,直到接下来的 6 个没有重复,依此类推。
对于上下文,这里是code
我到目前为止的独立概率(只是随机字符串):
$("button").click(function() {
var urls = [
"mafia",
"doctor",
"cupid",
"mafioso",
"pimp",
"detective"
];
var url = urls[Math.floor(Math.random() * urls.length)];
$("#log").append(url + "<br>"); // append url to log
var last = $("#log").split("<br>").pop(); // get last part
var text = urls.replace(last, ""); // replace in the array, hopefully
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>Generate</button><br>
<div id="log"></div>
任何想法,甚至是实现依赖 probability
的步骤,我都会欣然接受。提前致谢!
尝试在拾取时从数组中删除随机选择的项目,如果数组的长度为0,则将其重置为原始数组:
var origURLs = [
"mafia",
"doctor",
"cupid",
"mafioso",
"pimp",
"detective"
];
var currURLs;
$("button").click(function() {
if (!currURLs || currURLs.length === 0) currURLs = [...origURLs];
const randIndex = Math.floor(Math.random() * currURLs.length);
const url = currURLs.splice(randIndex, 1)[0];
$("#log").append(url + "<br>");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Generate</button><br>
<div id="log"></div>