강력한 난수 생성

저는 특별한 하드웨어를 사용하지 않고 성능이 뛰어나고 상당히 튼튼한 RNG를 찾고 있습니다. 수학적 방법(메르센 트위스터 등)을 사용할 수 있고, 기계에서 엔트로피를 수집할 수 있다. Linux/etc에서는 48개의 랜덤 비트를 생성하는 'drand48()'이 있습니다. I'd는 32비트 이상의 랜덤성을 생성할 수 있는 C++ 또는 C#에 대해 유사한 함수/클래스를 원하고, 어떤 하위 비트가 상위 비트와 동등하게 랜덤한지를 원한다.

암호적으로 안전할 필요는 없지만 C 언어인 'rand()' 또는 'rand()'를 사용하거나 기반해서는 안 된다.NET '시스템'아무렇게나.

소스 코드, 소스 링크 등이 있으면 감사하겠습니다! 그렇지 않다면 어떤 종류의 RNG를 찾아야 할까요?

질문에 대한 의견 (4)
해결책

C++는 [부스트]랜덤](http://www.boost.org/libs/random/)이 여러분이 찾고 있는 것일지도 모릅니다. MT를 지원하며 nondet_random 클래스를 통해 엔트로피를 수집할 수 있다. 확인해보세요! :-)

해설 (0)

[Gnu Scientific Library][1] (GSL)에는 상당히 광범위한 RN 제너레이터, 테스트 하니스 등이 있습니다. Linux를 사용 중인 경우 시스템에서 이미 사용할 수 있습니다.

[1]http://www.gnu.org/software/gsl

해설 (0)

Gnu 과학 도서관을 조심하세요. LGPL이 아닌 GPL로 라이선스를 받았다.

다른 사람들이 언급했듯이, Boost 무작위 수업은 좋은 시작이다. 이들의 구현은 TR1로 예정된 PRNG 코드를 준수한다.

http://www.boost.org/doc/libs/1_35_0/libs/random/index.html http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1452.html

G++ 컴파일러의 최신 버전이 있는 경우 TR1 라이브러리가 이미 포함되어 있을 수 있습니다.

해설 (0)

C++11 강력한 난수 따라 라이브러리를 부스트롬란도메이휴 채택하였다. 많은 수의 난수 엔진을 사용하는 다른 알고리즘을 사용하여 액세스하려면 충족합니다 품질, 속도, 또는 크기 홍보하십시오. 품질 구현을 통해 해당 플랫폼은 std::random_device 이시목이를 액세스하도록 비결정론적 유사환 것을 ''.

또한 생산할 수 있기 때문에 특정 배포판 등 여러 가지 어댑터를 직접 조작을 해야 (무언가 잘못 수행됨 종종).

[# include &lt, random&gt ','] (http://en.cppreference.com/w/cpp/numeric/random)

해설 (0)

내 첫 번째 선택 '은' 브루스 스트랭동 유사환

http://www.boost.org/doc/libs/random

해설 (1)