2010-03-08 251 views
5

生成隨機字符串的最佳方法是由字母組成,並且最多800萬字符將使用字符串搜索算法進行測試。 Math.random對於基於統計的字符傳播的隨機性或可靠性還是可以的?任何意見是讚賞,對我來說,如果我的想法錯了。隨機文本生成器

回答

1

當然,爲什麼不呢?實際上,8 MiB並不多。即使不好的PRNG也有至少幾十億的時間,Java使用48位的LCG。所以是的,它應該沒問題。

1

這完全取決於生成該字符串的目的。如果您要生成字符串以測試搜索算法的性能,那麼您可能希望生成包含類似於典型文檔的單詞分佈的「類似英語」的文本。

實現此目的的一種方法是構建一個Markov Chain,從而爲每個狀態生成給定的單詞;例如「The」然後以一定概率轉換到一個新的狀態;例如「The」 - >「第一」。您可以使用大量樣本文本自動生成馬爾可夫鏈,例如Brown Corpus

甚至更​​簡單,您可以使用特定的語料庫(例如Brown Corpus)來測試您的算法,而不必自己生成任何樣本。