검색어 입력폼
평가점수B

[통계] c로 구현한 난수발생기 및 플랏팅

저작시기 2005.04 |등록일 2005.07.01 한글파일한컴오피스 (hwp) | 10페이지 | 가격 800원

소개글

3가지 분포에 대한 난수를 발생하는 것을
c언어로 구현을 하였으며, 소스코드는 첨부하였습니다.
참고하세요~~~

목차

1.균일확률분포
2.일양분포
3.정규분포
(소스코드 첨부)

본문내용

1. 균일확률분포

특정한 구간에서 모든 값이 나타날 확률이 일정하면서, 발생된 순서가 인접한 숫자 간의 상관도가 없는 난수열을 발생시키는 방법이며, 실제의 경우에 있어서도 각 사건이 독립적이고, 각 사건이 일어날 확률이 모두 일정한, 공정한 동전이나 주사위를 던지는 경우 등 많이 존재한다. 컴퓨터를 이용하여 발생시키는 경우는 완전히 불규칙적이지 못하거나 특정한 주기를 가질 수 있는 문제점이 있기 때문에 아래와 같은 조건을 만족하는 난수발생기를 만들어야 한다.
 난수 발생기는 모든 통계적 검사를 통과하여야 하고 그 주기가 충분히 길어야 한다.
 난수 발생기의 초기 조건이 같으면 동일한 난수열을 발생시켜야 하고 약간이라도 다른 초기 조건으로 시작하면 전혀 다른 난수열을 발생시켜야 한다.
 사용하는 기계가 다르더라도 사용하는 초기 조건이 같으면 같은 난수열을 만들어야 한다.
난수 발생기를 만들 때 시스템이 지원하는 함수를 이용하는 방법을 사용하였다. CDF 0< U(X) <1 사이의 값을 가지므로, RND = (X-a) / (b-a)를 의미하며, X = (b-a)RND +a 의 공식으로 구하였다.

/* 0과 10사이의 Uniform Distribution Variables 을 100개 만들어내는 프로그램 */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void main()
{
int X;

srand( time(0) ); //seed값을 time을 써서 계속 변경해줌

for (int i=0;i<100;i++){
X = 10 * rand()/32768; //랜덤한 수에 32768을 나누어서 0과 1 printf("%5d", X); //사이로 들어오는 값으로 변경해준다.
if ((i+1)%5==0) printf("\n");
}
다운로드 맨위로