책 내용 질문하기
정보처리산업기사 실기 1권
도서
2020 시나공 정보처리산업기사 실기 [기본서]
페이지
99
조회수
295
작성일
2021-03-13
작성자
탈퇴*원
첨부파일
첨부파일의 코드는 6면 주사위를 100번 굴려서 나온 각 면의 수를 배열에 저장해 출력하는 알고리즘인데, 구조가 잘 이해되지 않습니다. 0. 우선 저는 hist 배열이, n번째 면이 나온 횟수를 hist[n]에 저장하는 배열이라고 이해했습니다. 1. 그런데, 이 코드에서 주사위를 100번 굴리는 작업에 대응되는 부분은 do-while 문밖에 없어 보이는데, n = rand() % 6 + 1 을 실행한 후 hist[n-1]의 값을 +1씩 누적시키는 것이 어떻게 각 면이 나온 횟수를 저장하는 작업이 되는지 잘 이해가 되지 않습니다.
답변
2021-03-18 09:39:01

안녕하세요.

 

rand() 함수로 발생된 난수를 6으로 나눈 경우 발생할 수 있는 수는

0, 1, 2, 3, 4, 5입니다.

여기에 1을 더하면

1, 2, 3, 4, 5, 6이 됩니다.

 

1~6까지 수, 주사위 6면 중 하나의 면이 랜덤하게 발생하는 것이죠.

 

이렇게 발생한 값이 hist 배열에 저장되는데,

저장될 때 배열의 위치는 0부터 시작하므로

앞서 주사위 면을 확인하기 위해 더한 1을

배열에 저장할 때는 1을 빼서

 

배열       : hist[0]  hist[1]  hist[2]  hist[3]  hist[4]  hist[5]

주사위면 :    1         2        3        4         5        6

 

위와 같이 대응되도록 지정한 것입니다.

 

오늘도 즐거운 하루 되세요.

  • 관리자
    2021-03-18 09:39:01

    안녕하세요.

     

    rand() 함수로 발생된 난수를 6으로 나눈 경우 발생할 수 있는 수는

    0, 1, 2, 3, 4, 5입니다.

    여기에 1을 더하면

    1, 2, 3, 4, 5, 6이 됩니다.

     

    1~6까지 수, 주사위 6면 중 하나의 면이 랜덤하게 발생하는 것이죠.

     

    이렇게 발생한 값이 hist 배열에 저장되는데,

    저장될 때 배열의 위치는 0부터 시작하므로

    앞서 주사위 면을 확인하기 위해 더한 1을

    배열에 저장할 때는 1을 빼서

     

    배열       : hist[0]  hist[1]  hist[2]  hist[3]  hist[4]  hist[5]

    주사위면 :    1         2        3        4         5        6

     

    위와 같이 대응되도록 지정한 것입니다.

     

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.