Как я могу создать (в Javascript) инструмент для определения самого длинного повторяющегося шаблона в серии чисел? - PullRequest
1 голос
/ 28 сентября 2011

Хорошо, короче говоря, то, что я в целом пытаюсь сделать, это проверить уровень случайности в серии из нескольких тысяч «ранее сгенерированных, казалось бы» случайных чисел.

Я уже написал что-то, что с большим успехом проверит вероятность чисел, однако следующим шагом будет выявление повторяющихся или повторяющихся паттернов.

Я бы предпочел, чтобы эта часть была написана на javascript, чтобы избежать необходимости учить себя другому языку на данный момент.

Теперь, очевидно, я мог бы сам использовать регулярное выражение и удар в некоторых случайных последовательностях, но это не идеально, и потребовалось бы бесконечное количество времени, чтобы получить результаты, которые мне нужны.

1 Ответ

1 голос
/ 28 сентября 2011

Ах, я пропустил ряд ваших комментариев выше.Я считаю, что это то, что вы ищете:

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;
}

Это будет медленно, но это сделает работу.

...