2011-09-28 16 views
1

好吧,長話短說,我總體上試圖做的是測試一系列數千個「以前生成的看似」隨機「數字的隨機性水平。如何創建(使用Javascript)一個工具來識別一系列數字中最長的重複模式?

我已經寫了一些東西然後,測試數字的概率,然而,下一步是確定重複或重複的模式。

我寧願在javascript中完成這部分,以避免自學另一種語言現在,很顯然,我可以使用正則表達式並自己挑選一些隨機序列,但這並不理想,而且將花費無限的時間來獲得我所追求的結果。

+0

您試圖確定隨機數是否隨機?這甚至有可能嗎? –

+0

您認爲1186787119789711879791189798711重複11?你認爲什麼是「重複模式」? –

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

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

+0

@GMan我已經編輯了我的回覆,以便將您的反饋納入上面。我相信我現在有了你想要的東西。 –

+0

這似乎幾乎正是我正在尋找。 – GMan

+0

請讓我知道,如果有什麼我可以做的,爲你完成它。另外,如果你喜歡這個答案,如果你能把它標記爲公認的答案,我將不勝感激。祝你好運! –

相關問題