代码之家  ›  专栏  ›  技术社区  ›  aman.s

生成依赖概率的随机字符串

  •  0
  • aman.s  · 技术社区  · 7 年前

    使用 JavaScript jQuery ,我正在尝试创建一个 string 依赖依赖的生成器 probability . 例如,如果我第一次生成“医生”,其他“医生”就不会出现。它会转到另一个 url 就像“皮条客”。一劳永逸 一串 名称已经被使用,它会再次生成一个完全随机的名称,直到下一个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>

    任何想法,甚至是实现依赖的一步 可能性 ,这是我乐意接受的答案。事先谢谢!

    1 回复  |  直到 7 年前
        1
  •  1
  •   CertainPerformance    7 年前

    尝试在拾取时从数组中删除随机选择的项,如果数组的长度为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>
    推荐文章