• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

random관련한 질문입니다.

20.03.31 15:18 작성 조회수 110

0

선생님 안녕하세요~ 너무나도 훌륭한 강의 감사합니다.

제가 궁금한건 random함수 관련한것인데.

rand() % (level * 7) + 1;

인데 

%의 경우에는 나머지를 구하는 함수로 알고있습니다.

이 부분이 이해가 잘 안가서 그러는데...

혹시 조금 설명을 부탁 드려도될까요?

제가 이해력이 조금 부족해서ㅠㅠ 

답변 1

답변을 작성해보세요.

3

안녕하세요

% 는 나머지를 구하는 함수, 맞습니다.

rand() 는 랜덤수를 뽑아 줍니다.

level * 7 은 입력받은 레벨 값에 7을 곱해줍니다. 예를 들어 level 은 1 이라고 할게요. 그럼 7이 되겠네요.

rand() % 7 을 하게 되면, rand() 가 1씩 증가한다고 할 때 값이 어떻게 되나 볼까요

rand() 와 rand() % 7 를 콤마로 구분하여 적어보면요,

0, 0 % 7 = 0

1, 1 %7 = 1

2, 2 % 7 = 2

3, 3 % 7 = 3

4, 4 % 7 = 4

5, 5 % 7 = 5

6, 6 % 7 = 6

7, 7 % 7 = 0

8, 8 % 7 = 1

9, 9 % 7 = 2

10, 10 % 7 = 3

...

보시다시피, 맨 오른쪽 값이 결과값인데 0 1 2 3 4 5 6 을 하고 나서 다시 0 1 2 3 ... 이렇게 커집니다.

즉 rand() 값이 아무리 커져봐야 이 범위는 0 1 2 3 4 5 6 내에서 머물러 있게 되는 거지요. 

여기에 맨 마지막 값인 1을 더해서, 1 2 3 4 5 6 7 내의 범위에 머물러 있게 되는 겁니다. (레벨이 커지면 범위가 넓어지겠지요)

이해가 되실까요? ^^

감사합니다.