헬로 있어요! C++로 코딩하기 시작했으며 난수 생성기를 올바르게 사용하는 방법을 잘 모릅니다. 예를 들어, 범위 [0,30000]의 숫자가 필요합니다. 내 범위에서 작은 숫자 만 얻지 못하도록하는 방법입니다. 내 기능 :mt19937 및 정규 분포
std::random_device rd;
std::mt19937 rng(rd());
int myRand(int i) {
std::normal_distribution<double> distribution(30, 1500);
double temp=distribution(rng);
if(temp<0){
temp*=(-1);
}
return (int) std::round(temp)%i;
}
당신은 나를 제대로 normal_distribution를 구성하는 데 도움시겠습니까?
정말 정말 이상한 배포판입니다. 거기서 계산하고 있습니다. 의도 한 배포판은 무엇입니까? – harold
완전히 솔직하게, 나는이 사이트를 일부 사이트에서 발견했습니다. 내가 필요로하는 것은 [0, n]에서 많은 숫자입니다. 모든 숫자는 동일한 확률로 선택되어야합니다. – ogarogar
이것은 'uniform_int_distribution'을 참조하십시오. – harold