2012-11-22 7 views
0

균일하게 난수가 생성되었습니다. 이제 Gaussian (Normal) 분포를 사용하여 난수를 생성합니다. 나는 평균과 표준 편차를 모른다. 이 글을 읽었습니다 : http://www.johndcook.com/cpp_TR1_random.html#normal,하지만 평균과 표준 편차가 필요합니다! 박스 뮬러 변환이 일반적으로 사용된다는 것도 알고 있습니다. 이 값은 정규 분포를 갖는 값을 올바르게 생성합니다. 그러나 나는 다시 평균과 표준 편차를 알지 못한다. 부스트 부탁드립니다. 아무도 도와 줄 수 있습니까?평균 및 표준 편차가없는 C++를 사용한 가우스 분포

+0

평균 및 분산 (표준 편차)을 모르는 경우 문제가 발생합니다. –

+9

평균 및 표준 편차없이 가우스 분포를 생성하는 방법을 묻는 것은 최소값과 최대 값없이 균일 한 분포를 요구하는 것과 조금 비슷합니다. – Rook

+0

원하는 배포판에 대해 알고 계십니까? 나는 당신이 어떻게 행동해야하는지에 대한 일종의 지식을 가지고 있다고 가정합니다. (그렇지 않으면 무작위로 평균과 분산을 선택하지 못하게합니까?) ... – Grizzly

답변

2

균일하게 분포 된 (세그먼트에서) 난수를 생성 할 때는 세그먼트의 낮은 경계와 세그먼트의 상단 경계라는 두 개의 매개 변수가 필요합니다. 대개 0과 1이므로 숫자를 [0..1] 범위에서 가져옵니다.

이제 정규 분포 숫자를 생성하려면 평균 및 표준 편차의 두 매개 변수도 필요합니다. 그러나 그들은 다른 의미를 가지고 있습니다. 평균은 생성 된 숫자가 수집되는 숫자입니다. 예를 들어 15를 지정하면 11, 17, 13, 21, 9, 12, 14, 11 등이 표시되지만 그렇지 않은 경우는 일반적으로 290 또는 -562. 그리고 표준 편차 (시그마)는 근본적으로 생성 된 수치가 평균에서 얼마나 멀리 떨어질 수 있는지를 결정합니다. 엄밀히 말하자면, 어떤 크기라도 생성 될 수 있습니다 : 평균 0과 시그마 1e-6을 지정하더라도 여전히 1000을 얻을 수 있습니다.

대략적으로 생성 된 숫자는 모두 [mean - 3 * sigma .. mean + 3 * sigma] 범위이며, 평생 [mean - 5 * sigma .. mean + 5 * sigma] 범위를 벗어나는 내용은 볼 수 없습니다.

mean = 0, sigma = 1 인 "표준"정규 분포 개념이 있습니다. 이는 대부분 [-3..3] 범위의 숫자를 얻음을 의미합니다.

다소 도움이 되었기를 바랍니다.

관련 문제