2010-03-08 34 views
5

¿Cuál es la mejor forma de generar una secuencia aleatoria compuesta de alfabetos y un máximo de 8 millones de caracteres que se probarán utilizando algoritmos de búsqueda de cadenas? ¿Math.random sigue estando bien para la aleatoriedad o la confiabilidad de la dispersión de caracteres basada en estadísticas? cualquier comentario es apreciado, en mi caso si estoy equivocado con mis ideas.Generador de texto aleatorio

Respuesta

1

Claro, ¿por qué no? 8 MiB no es mucho, en realidad. Incluso los PRNG malos tienen períodos de al menos unos pocos miles de millones y Java usa un LCG de 48 bits. Entonces sí, debería estar bien.

1

Depende por completo de los efectos de obtener esta cadena. Si está generando cadenas para probar el rendimiento de un algoritmo de búsqueda, puede generar un texto "similar al inglés" que contenga una distribución de palabras similar a un documento típico.

Una forma de lograr esto sería construir un Markov Chain, por el cual para cada estado genera una palabra dada; p.ej. "The" y luego la transición a un nuevo estado con una cierta probabilidad; p.ej. "El" -> "primero". Puede generar automáticamente la cadena de Markov utilizando un cuerpo grande de texto de muestra, como Brown Corpus.

O incluso más simple, podría probar su algoritmo utilizando un corpus particular (como el Corpus marrón) en lugar de tener que generar muestras usted mismo.

Cuestiones relacionadas