2009-07-12 2 views
1

in 내 previous 게시물 정상적인 분포에 따라 숫자를 생성하는 방법을 묻고있었습니다.C++ : TR1 대 GSL 대 통계 분포를위한 부스트?

내가 생성하는 다른 분포를 가지고 내가 본 이후 3 라이브러리를 제공 할 수 있습니다 (GSL, TechnicalReport1 (문서 링크?), Boost), 당신이 선택하는 것이 어느 궁금 해서요.

참고 사항 : 내 응용 프로그램의 참조 플랫폼은 GNU/Linux 시스템이며 성능은 중요합니다.

답변

1

부스트는 크로스 플랫폼이기 때문에 좋습니다. 솔직히, 비록 암호로 보호되지 않는 번호가 필요하다면, mersenne 트위스터는 그 라이브러리들 중 하나에서 매우 빠를 것입니다. 병목 현상이 발생한 경우 가장 빨리 수행 할 테스트를 수행하십시오.

4

Take Boost 그것은 C++ 용으로 인기 있고 잘 디자인되었습니다.

GSL은 배포판보다 훨씬 뒤처진 툴을 제공하는 매우 훌륭한 라이브러리이지만, GPL이 아닌 애플리케이션을 개발하여 배포하려는 경우 불가능합니다.

2

메르 센느 트위스터는 균일하게 분포 된 숫자를 제공합니다. 그들로부터 정규 분포 번호를 생성하는 일반적인 두 가지 방법이 있습니다 : 그것은 천천히 호출하기 때문에 내 경험에

  1. Box-Muller transform

  2. Ziggurat method

은 지구라트는 2 배 빠른 자바입니다 log-exp는 Box-Muller보다 훨씬 덜 자주 기능합니다. C++에서 어떻게 사용되는지 모르겠습니다.