2017년도 2학기 시뮬레이션 과제를 작성하면서 해메었던 부분을 정리한다.
시뮬레이션 결과는 위 스샷 처럼 나오게 하면 끝.
자바로 옮기면서 가장 해메었던 부분은 역시 포아송분포.
하지만 StackOverFlow와 함께라면 두렵지 않습니다.
이 글을 힌트삼아 포아송 분포 값을 획득하면 됩니다.
또 잘 쓰이지 않는 Random 함수에 seed 심기.
private static final int seed = xxxx; 로 선언하고,
Random randoms = new Random(seed); 로 사용하면 끝.
나머지는 교재에 나와있는대로 작성하면 됩니다.
int queue = 0; // 줄에서 기다리고 있는 사람(차량) 수, 대기 행렬의 길이
int totque = 0; // 대기행렬 queue의 전체 합(=전체 고객의 총 대기시간)
int totarr = 0; // 총 도착 고객 수
int tpump = 0; // 고객에 대한 봉사시간 (단위: 분)
int time = 0; //시뮬레이션의 현재 시간 (단위: 분)
int tstep = 1; // 세뮬레이션의 진행 단위 시간
double prarr = 20/60d; // 고객이 1분 내에 도착할 확률 (조건: 20명)
int mean = 4; // 평균이 mean인 포아송 확률 변수를 구하려 한다. (조건: 4분)
int tlimit = 100; // 총 시뮬레이션 수행시간
if(rand.nextDouble() < prarr * tstep) { // 고객이 도착한 경우
tpump = getPoisson(mean, rand); // 고객의 봉사시간을 구한다.
이와 같이 Java 형식에 맞춰서 바꿔주기만 하면 됩니다.
StringBuilder sb = new StringBuilder();
sb.append(i);
sb.append("번째 고객 \t");
sb.append("도착시간: ");
sb.append(hm.get("arrTime"));
sb.append("분\t");
결과는 이와 같이 StringBuilder를 이용하여 출력결과를 만들면 됩니다.
그리고 만든 결과값을
public static void main(String[] args) {
HashMap result = doSimulate();
printResult(result);
}
으로 실행만 하면 끝.
최대한 간단히 작성하여 원하는 결과를 얻어낸 뒤 한글파일 작성하여 전송 끝.
과제 제출 기한이 다가오면서 생각보다 스트레스를 받았다.
최대한 간단하게 작성하고, 정리하여 제출.
급하게 냈는데 괜찮으려나 모르겠다.
'일상' 카테고리의 다른 글
윈도우10 MS오피스 2016 아이콘 오류 복구하기 (0) | 2018.04.12 |
---|---|
간단하게 만드는 레몬라임차 (0) | 2017.12.04 |
모네 빛을 그리다: 두번째 이야기 방문기 (0) | 2017.10.06 |
IQOS(아이코스) AS 후기 (0) | 2017.09.16 |
Scratch - 가위바위보 하기 (0) | 2017.07.18 |