C FAQ: 난수 관련 section 검토 요망.

cinsk의 이미지

수학을 잘 하시는 분이 계시면 도움을 부탁드립니다.

아래 링크에 13.15부터 13.21까지 난수(random number)에 관한 것인데,
제가 가진 지식으로는 번역도 힘들고 (수학 용어 때문), 제공한 예제 코드가 적합한지 검토하기도 힘들군요.

번역 및 코드에 대해 도움을 바랍니다.

난수 section 바로가기

(이 글 자체가 한글로 번역하기 애매한 용어는 번역을 하지 않으니, 꼭 모든 용어를 한글로 바꾸시려고 할 필요 없습니다. 예를 들어 specifier, qualifer 등은 번역하지 않을 계획입니다)

지금 생각나는 분으로는 Fibonacci님이 도움을 주실 수 있을 것 같은데.. :wink:

아무쪼록 많은 분들의 도움 바랍니다.

참. 한 가지 더, 학교 서클 서버가 불안한 관계로 제 홈페이지 옮겼습니다. (아래 signature 참고)

doldori의 이미지

수고하십니다. 이것 때문에 clc에서도 자주 포스팅하시는 것 같습니다.
FAQ에 못보던 내용이 많이 들어가 있네요. (제가 최근에 본 것은 2005년 1월 1일자입니다.)
조금 도움이 될까 해서 번역이 안 된 부분만 우리말로 옮겨봤습니다.

--

13.15 (The ``minimal standard'' is adequately good; it is something
``against which all others should be judged'' and is recommended for
use ``unless one has access to a random number generator known
to be better.'')

minimal standard 난수 발생기는 꽤 좋은 편입니다. 다른 난수 발생기의 성능을
판단하기 위한 잣대가 될 수 있으며, 더 나은 성능을 보인다고 알려진 것을 사용할
수 없을 때에는 이를 사용하기를 추천합니다.

--

13.17 용어. pseudo-random number는 보통 "의사 난수"라고 부르던데요.

(Among other things, a bit of predictability can make debugging much easier.)

무엇보다도 예측이 가능하다는 점 때문에 디버깅이 훨씬 쉬워질 수 있습니다.

--

13.20 How can I generate random numbers with a normal or Gaussian distribution?

정규 분포(가우스 분포)를 갖는 난수를 발생하려면 어떻게 해야 합니까?

--

13.20 These methods all generate numbers with mean 0 and
standard deviation 1. (To adjust to another distribution, multiply by
the standard deviation and add the mean.) Method 1 is poor ``in the
tails'' (especially if NSUM is small), but methods 2 and 3 perform quite
well. See the references for more information.

이러한 방법들은 모두 평균 0, 표준편차 1의 난수 분포를 발생합니다. (다른 값을
갖는 분포로 조정하려면 표준편차값를 곱한 후에 평균값을 더하십시오.) 1번 방법은
NSUM의 값이 작을 경우에 꼬리 부분(평균에서 멀리 떨어진 부분을 뜻하는 것
같음)에서 부정확한 결과를 보입니다. 그러나 2번과 3번 방법은 성능이 매우 좋습니다.
자세한 것은 참고문헌을 보십시오.

--

13.21 Before using code like this, though, beware that it is numerically
suspect, particularly if (as is usually the case) the period of rand is on
the order of RAND_MAX. (If you have a longer-period random number
generator available, such as BSD random, definitely use it when
simulating drand48.)

하지만 이 코드는 수치적으로 그리 신뢰할 수 없음을 유념하십시오. rand의 주기가
RAND_MAX와 같은 차수(order)를 갖는 경우에는(대개 그렇습니다) 특히 주의를
요합니다. (drand48을 시뮬레이트 할 때 BSD random 같이 주기가 긴 난수 발생기를
사용할 수 있다면 반드시 그것을 쓰십시오.)

--

난수에 관한 지식은 전무한 관계로 코드 검증은 못하겠네요. ^^;

cdpark의 이미지

doldori wrote:
수고하십니다. 이것 때문에 clc에서도 자주 포스팅하시는 것 같습니다.
FAQ에 못보던 내용이 많이 들어가 있네요. (제가 최근에 본 것은 2005년 1월 1일자입니다.)
조금 도움이 될까 해서 번역이 안 된 부분만 우리말로 옮겨봤습니다.

--

13.15 (The ``minimal standard'' is adequately good; it is something
``against which all others should be judged'' and is recommended for
use ``unless one has access to a random number generator known
to be better.'')

minimal standard 난수 발생기는 꽤 좋은 편입니다. 다른 난수 발생기의 성능을
판단하기 위한 잣대가 될 수 있으며, 더 나은 성능을 보인다고 알려진 것을 사용할
수 없을 때에는 이를 사용하기를 추천합니다.

minimal standard 난수 발생기는 그럭저럭 괜찮은 편입니다. 다른 난수발생기의 판단 기준으로 쓰일 수 있으며, 더 낫다고 알려진 난수 발생기를 쓸 수 없는 경우에만 사용을 추천합니다.

라고 번역하고 싶네요. (원문과 원문에 대한 토론 thread를 찾아봐야..)

당장 많은 unix 시스템에서 낡은 rand()보다 나은 lrand48()이나 random()이라는 난수발생기를 제공해주고 있습니다. 다행히도(?) Linux에서는 rand()는 random()과 같은 알고리즘을 사용합니다.