【问题标题】:Generate Random String with Dependent Probability生成具有相关概率的随机字符串
【发布时间】:2018-11-03 03:18:01
【问题描述】:

使用JavaScriptjQuery,我正在尝试创建一个依赖于依赖probabilitystring 生成器。 例如,如果我第一次生成“医生”,则不会出现其他“医生”。它会转到另一个url,比如“皮条客”。一旦使用了所有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 的一步,都是我很乐意接受的答案。提前致谢!

【问题讨论】:

    标签: javascript jquery math random probability


    【解决方案1】:

    在被选中时尝试从数组中移除随机选择的项,如果数组的长度为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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-11
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 2012-12-04
      • 1970-01-01
      相关资源
      最近更新 更多