-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
random관련한 질문입니다.
20.03.31 15:18 작성 조회수 110
0
선생님 안녕하세요~ 너무나도 훌륭한 강의 감사합니다.
제가 궁금한건 random함수 관련한것인데.
rand() % (level * 7) + 1;
인데
%의 경우에는 나머지를 구하는 함수로 알고있습니다.
이 부분이 이해가 잘 안가서 그러는데...
혹시 조금 설명을 부탁 드려도될까요?
제가 이해력이 조금 부족해서ㅠㅠ
답변을 작성해보세요.
3
나도코딩
지식공유자2020.04.15
안녕하세요
% 는 나머지를 구하는 함수, 맞습니다.
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 내의 범위에 머물러 있게 되는 겁니다. (레벨이 커지면 범위가 넓어지겠지요)
이해가 되실까요? ^^
감사합니다.
답변 1