2010-03-08 42 views
5

Rastgele alfabe ve 8 milyon karakterden oluşan bir dize rasgele oluşturmanın en iyi yolu, hangi dize arama algoritmaları kullanılarak test edilecek? Math.random hala istatistiklere göre karakterlerin yayılmasının rastlantıları veya güvenilirliği için uygun mu? herhangi bir yorum takdir edilir, benim fikirlerimle yanlış anlaşılırsa doğru.Rastgele metin oluşturucu

cevap

1

Elbette, neden olmasın? Aslında 8 milyar dolar değil. Kötü PRNG'lerin bile en az birkaç milyar süreleri vardır ve Java 48 bit LCG kullanır. Yani evet, iyi olmalı.

1

Bu dize oluşturmak amacıyla tamamen bağlıdır. Bir arama algoritmasının performansını test etmek için dizeler oluşturuyorsanız, tipik bir belgeye benzeyen bir kelimelerin dağılımını içeren "İngilizce benzeri" bir metin oluşturmak isteyebilirsiniz.

Bunu başarmanın bir yolu, her bir durum için belirli bir sözcük oluşturduğunuz bir Markov Chain oluşturmak; Örneğin. "Sonra" ve sonra belli bir olasılıkla yeni bir duruma geçiş; Örneğin. "-" "ilk". Markov zincirini, Brown Corpus gibi büyük bir örnek metin kullanarak otomatik olarak oluşturabilirsiniz. Veya daha da basit bir şekilde, algoritmanızı herhangi bir örneği kendiniz üretmek zorunda kalmadan, belirli bir korpusu (örneğin, Brown Corpus) kullanarak test edebilirsiniz.