如何创建(在Javascript中)一个工具来识别一系列数字中最长的重复模式?

时间:2011-09-28 04:55:42

标签: javascript random design-patterns repeat

好吧,长话短说,我总体上试图做的是测试一系列数千个“先前产生的看似”随机“数字的随机性水平。

我已经写了一些能够测试数字概率并取得巨大成功的东西,然而,下一步是识别重复或重复出现的模式。

我更喜欢用javascript完成这部分,以避免暂时自己教另一种语言。

现在,显然,我可以使用正则表达式并自己打一些随机序列,但这并不理想,并且需要花费无限的时间才能得到我想要的结果。

1 个答案:

答案 0 :(得分:1)

啊,我错过了你上面的一些评论。我相信这就是你要找的东西:

function findLongestMatch(StringOfNumbers) {
    var matches = StringOfNumbers.match(/(.{2,})(?=.*?\1)/g);
    if (!matches) { return null; }

    var longestMatch = matches[0];
    var longestMatchLength = longestMatch.length;
    for (matchIndex = 1; matchIndex < matches.length; matchIndex++) {
      if (matches[matchIndex].length > longestMatchLength) {
        longestMatch = matches[matchIndex];
        longestMatchLength = longestMatch.length;
      }
    }
    return longestMatch;
}

它会很慢,但它会完成工作。