문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 난수생성 (문단 편집) === 중앙제곱법 === 영어 : Mid Square Method 일본어 : 中二乗法 {{{+1 X_{n+1} = (X_n)^2의 가운데 a자리}}} X는 난수 수열, a는 원하는 자릿수([[10진법]]으로), 시드(X,,0,,)는 임의의 a자리인 수[* a=6이면 100000 ≤ X,,0,, ≤ 999999 의 범위 중 하나를 쓰라는 말]. Middle-square method. [[폰 노이만]]이 1949년에 고안한 의사난수법. 생성된 품질이 좋지 않기 때문에 그 당시의 컴퓨터면 몰라도 그 이후 시대에는 웬만하면 아래의 선형합동법을 사용한다.[* 결정적으로, X_k의 값이 0일 때 n > k인 X_n의 모든 값이 0이다(...). 회차마다 난수에 상수를 더해봐도 계속 가다 보면 어느 순간 반복되는 일정한 패턴이 나타난다.] 초기 값이 2345이고, 가운데에서 4자리를 선택하여 5개의 난수를 만드는 경우에는 다음과 같다. {{{#!syntax cpp #include #include int main(void) { int i; long num1 = 1000000, num2 = 100, temp; double k = 2345, temp1, temp2; for(i=1; i<=5; i++) { temp1 = pow(k, 2); temp = temp1 / num1; temp2 = temp1 - temp * num1; temp = temp2 / num2; printf("%5d\n", temp); k = temp; } return 0; } }}}저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기