책 내용 질문하기
기출문제집 p86
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
84
조회수
654
작성일
2019-04-12
작성자
탈퇴*원
첨부파일
문제 3번의 코드에대한건데요, 정답대로 실행해보면 6이라는숫자가나오면 n=1이되고 hist[0]=hist[0]+1이 되는데 나중에 출력될때 1 =hist[0](에 저장된값) 이라고 표시가됩니다. 1이라는 숫자가 나온 그릇을 써야한다고 생각하는데 6이라는 숫자가나올때 저장한 그릇이 쓰이게 된것이라고 생각합니다 ㅜ 그러면 각면의 수가 아니지 않게 되는거 아닌가요? ㅜ
답변
2019-04-12 11:19:49

안녕하세요 길벗수험서 운영팀입니다.

 

자.. 우리는 좀더 컴퓨터적 사고를 지녀야 합니다.

문제의 알고리즘은 6면 주사위를 굴리는 알고리즘을 구현하라고 하였습니다.

하지만 실제 컴퓨터 내에서 6면 주사위를 구현할 필요는 없습니다.

 

rand라는 무작위 수를 뽑아주는 함수를 이용하여 나오는 수치들을 6등분 하는 것입니다.

rand()%6 + 1

이것이 그 과정이죠.

단순하게 %6을 사용하여 6등분한다면 0, 1, 2, 3, 4, 5 라는 수치를 반환하게 될 것입니다.

이것을 사용자가 편하게 +1을 해주어 1, 2, 3, 4, 5, 6으로 바꿔주는 것일 뿐이죠.

 

저것이 실제 주사위 눈이 되는 것은 아닙니다.

단순히 무작위의 수를 6등분한 순서일 뿐이죠.

나머지로 0, 1, 2, 3, 4, 5 가 나올 무작위 수치들은 일의자리 수부터 몇십만 몇백만 수치의 수를 단순히 구분하여 나눠준 것이라는 것을 기억하세요. 

 

때문에 이를 배열에 저장할 때 주사위 눈(프로그램 개발자가 아닌 사용자의 편의상)-1을 한 배열에 저장한 후 이후 출력할 때 +1을 해서 출력해주는 것입니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-04-12 11:19:49

    안녕하세요 길벗수험서 운영팀입니다.

     

    자.. 우리는 좀더 컴퓨터적 사고를 지녀야 합니다.

    문제의 알고리즘은 6면 주사위를 굴리는 알고리즘을 구현하라고 하였습니다.

    하지만 실제 컴퓨터 내에서 6면 주사위를 구현할 필요는 없습니다.

     

    rand라는 무작위 수를 뽑아주는 함수를 이용하여 나오는 수치들을 6등분 하는 것입니다.

    rand()%6 + 1

    이것이 그 과정이죠.

    단순하게 %6을 사용하여 6등분한다면 0, 1, 2, 3, 4, 5 라는 수치를 반환하게 될 것입니다.

    이것을 사용자가 편하게 +1을 해주어 1, 2, 3, 4, 5, 6으로 바꿔주는 것일 뿐이죠.

     

    저것이 실제 주사위 눈이 되는 것은 아닙니다.

    단순히 무작위의 수를 6등분한 순서일 뿐이죠.

    나머지로 0, 1, 2, 3, 4, 5 가 나올 무작위 수치들은 일의자리 수부터 몇십만 몇백만 수치의 수를 단순히 구분하여 나눠준 것이라는 것을 기억하세요. 

     

    때문에 이를 배열에 저장할 때 주사위 눈(프로그램 개발자가 아닌 사용자의 편의상)-1을 한 배열에 저장한 후 이후 출력할 때 +1을 해서 출력해주는 것입니다.

     

    행복한 하루되세요 :)

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