2010-03-08 184 views
5

生成随机字符串的最佳方法是由字母组成,并且最多800万字符将使用字符串搜索算法进行测试。 Math.random对于基于统计的字符传播的随机性或可靠性还是可以的?任何意见是赞赏,对我来说,如果我的想法错了。随机文本生成器

回答

1

当然,为什么不呢?实际上,8 MiB并不多。即使不好的PRNG也有至少几十亿的时间,Java使用48位的LCG。所以是的,它应该没问题。

1

这完全取决于生成该字符串的目的。如果您要生成字符串以测试搜索算法的性能,那么您可能希望生成包含类似于典型文档的单词分布的“类似英语”的文本。

实现此目的的一种方法是构建一个Markov Chain,从而为每个状态生成给定的单词;例如“The”然后以一定概率转换到一个新的状态;例如“The” - >“第一”。您可以使用大量样本文本自动生成马尔可夫链,例如Brown Corpus

甚至更​​简单,您可以使用特定的语料库(例如Brown Corpus)来测试您的算法,而不必自己生成任何样本。