C++11 임의적입니까 난수 생성 라이브러리를 사용하여
제목으로 제안됩니다 난수 생성 알아내려 하고, 나는 ',' 새로운 방법을 사용하여, C++11 < random> 라이브러리란. 나도 날잡아 it 대체하십시오 코드:
std::default_random_engine generator;
std::uniform_real_distribution<double> uniform_distance(1, 10.001);
문제는 내가 그것을 할 때마다 나는 는 코드 컴파일하십시오 생성하는지 실행하십시오 항상 같은 번호를. 그래서 내 질문은 어떤 다른 기능을 수행할 수 있는 이 중에는 무순서 라이브러리란 진정한 임의적입니까?
I was trying to get a 값을 특정 범위 내의 览侩 荤례, 내 ' [1, 10]'
127
5
슈테판 T. 라바웨차 잘 한 것 (stl) Microsoft 에서 새로운 기능 및 왜안돼요 의논하십시오 emc. 넷윈을 사용 방법에 대한 C++11 임의적입니까 사용할 수 있는 '랜드 ()'. 그는 기본적으로 포함되어 있는 항목이없습니다 슬라이드에서는 질문 한 번에 해결할 수 있습니다. # 39 의 슬라이드에서는 i&, ve 복사됨 코드는 아래와 같습니다.
여기서 그의 전체 의논하십시오 볼 수 있습니다. http://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful
39, & # 39 random& 내. 높은 편리한 주위에서 래퍼 라이브러리 제공하십시오 C++11 임의적입니까 클래스뿐만. # 39, & # 39 를 통해 간단한 get& 거의 모든 것을 할 수 있습니다. 메서드입니다.
예를 들면 다음과 같다:
자동 발 = 임의적입니까 확보하십시오. (10, 10). 정수 // 자동 발 = 임의적입니까 확보하십시오. (10.f, - 10.f); 부동 소수점 지점임 //
자동 발 = Random::get< bool> 50%, () / / 발령합니다 flashcopy. 자동 발 = Random::get<; (0.7) / / 발령합니다 flashcopy bool> 70%
자동 발 = 임의적입니까 확보하십시오. (} {1, 3, 5, 7, 9). // 발 = 1 또는 3 또는.
자동 it = 임의적입니까 확보하십시오. (베c베긴 (), 베c런드 ()); 이 = 임의적입니까 반복자가 // 자동 it = 임의적입니까 확보하십시오. (vec); 복귀하십시오 임의적입니까 반복자가 //
심지어 더 많은 것을! 깃허브 체크아웃합니다 페이지:
https://github.com/effolkronium/random
39 의 here& 생각하신거야 내가 단지 그 선 함께 썼다.
~
다음은 일부 리소스에는 dtep 임의적입니까 번호임 발생기입니다 읽을 수 있습니다.
https://en.wikipedia.org/wiki/Pseudorandom_number_generator
기본적으로 필요한 컴퓨터 난수 시드입니다 (이 수치는 현재 시스템 시간을 될 수 있습니다).
복귀시킴
의해
39, ve got you& 2 개의 일반적인 상황. # 39, 첫 번째 에로남이네 운영까지도 난수 및 aren& 대한 품질 또는 실행 속도가 너무 법석을 떨게하는 없다. 이 경우, 아래 매크로
p 수 있는 범위는 0 부터 1 - 엡실론 (않으면 RAND_MAX 는 보다 큰 걱정할 수 있지만, 이 경우 두 번 정밀도가 따라오렴).
int (uniform () * N) = x (int);
이제 임의의 정수 N - 1 을 제공합니다.
필요한 경우, 당신은 다른 분포를 변형하려면 p. # 39 의 균일 () 또는 때때로 it& 간소화하는지 여러 차례 불러.
그렇지 않으면 시드입니다 반복시킬 스케쳐내 행동, 일정한 시간 () 와 함께 시드입니다 전화로.
이제 유니폼 () 또는 런타임 성능, 품질 재작성할 경우 대한 괴롭혔다. 하지만 그렇지 않으면 don& # 39, t touch the 코드입니다. 항상 0 에서 1 렉시한테서 유니폼 () 를 뺀 엡슬런 (e). 이제 더 나은 균일 () 이지만, 난수 생성 라이브러리를 잡기 c++컴파일러는 that& # 39 의 옵션을 일종의 중간 수준. # 39 의 경우, s 도 특성에 관한 괴롭혔다 유사환 관심용 it& 투자 가치가 조금 이해하기 위해 시간 작업 후 제공하십시오 기본 방법 1. 그래서 you& # 39, ve got 완벽하게 제어할 수 있을지 장담할 수 있는 코드, 진실이며당신이 와 동일한 시드입니다, e0100042.log 항상 똑같은 플랫폼에 상관없이, 어떤 버전의 c++컴파일러는 틀렸다니까 링크하려는.