2010-03-08 5 views
5

알파벳과 최대 8 백만 자의 문자열로 구성된 문자열을 임의로 생성하는 가장 좋은 방법은 문자열 검색 알고리즘을 사용하여 테스트 할 수 있습니까? Math.random은 여전히 ​​통계를 기반으로하는 문자의 확산의 무작위성 또는 신뢰성에 대해 괜찮을까요? 어떤 의견이라도 고맙게 생각합니다. 제 생각에는 잘못된 생각이 들었습니다.랜덤 텍스트 생성기

답변

1

물론 이죠? 8 MiB는 그리 많지 않습니다. 나쁜 PRNGs조차도 적어도 수십억의 기간을 가지며 Java는 48 비트 LCG를 사용합니다. 그래, 괜찮을거야.

1

그것은이 열을 생성 할 목적에 전적으로 의존한다. 검색 알고리즘의 성능을 테스트하기 위해 문자열을 생성하는 경우 일반적인 문서와 비슷한 단어의 분포를 포함하는 "영어 같은"텍스트를 생성 할 수 있습니다.

이것을 달성하는 한 가지 방법은 Markov Chain을 작성하는 것입니다. 각 상태에 대해 주어진 단어를 생성합니다. 예 : "The"를 선택하고 특정 확률로 새로운 상태로 전환합니다. 예 : ""-> "처음". Brown Corpus과 같은 대량의 샘플 텍스트를 사용하여 Markov 체인을 자동으로 생성 할 수 있습니다.

또는 심지어 간단하면 샘플을 직접 생성하지 않고 특정 코퍼스 (예 : Brown Corpus)를 사용하여 알고리즘을 테스트 할 수 있습니다.