1) 예제 2번에서 rand() 함수를 왜 6으로 나누는건지 모르겠습니다.
2) for문 내에서 i를 왜 6보다 작을 경우라고 해야하는지 이해가 안됩니다ㅜㅜ i는 주사위 굴리는 횟수 아닌가요??
괄호1 ,2번 답도 같이 설명해주시면 감사하겠습니다!
안녕하세요 길벗수험서 운영팀입니다.
1)
rand() 함수는 0부터 32767 사이의 난수를 발생시킵니다.
주사위를 굴리다고 하면 1~6까지의 수를 발생시켜야 하는데 위의 수에서 특정 개수를 수를 뽑아내는데 주로 사용하는 방법이 나머지를 사용하는 방법입니다.
(난수)%6을 하면 0~5의 나머지가 나오게 됩니다. 이 나머지에 +1을 하게 되면 주사위와 같이 1~6의 랜덤수가 나오게 되죠.
2)
변수 i가 어떻게 변화하는지 확인해보세요.
do ~ while문에서 i는 주사위를 100번 굴리는데 매번 굴린 횟수를 확인하는 용도였지만,
for문에 입장하면서 다시 0~5까지 증가하여 hist 배열의 주소값의 용도로 사용됩니다.
하나의 변수가 반드시 하나의 용도로만 쓰일 필요는 없습니다.
일반적으로 하나의 알고리즘만을 담은 정보처리기사/산업기사 문제에서는 하나의 변수가 2개 이상의 용도로 사용되는 경우는 거의 없으나, 사용자들의 혼란을 유도하기 위해 고의적으로 해당 문제와 같이 사용될 수 있다는 점에 유의해두세요.
행복한 하루되세요 :)
-
관리자2019-03-22 09:49:53
안녕하세요 길벗수험서 운영팀입니다.
1)
rand() 함수는 0부터 32767 사이의 난수를 발생시킵니다.
주사위를 굴리다고 하면 1~6까지의 수를 발생시켜야 하는데 위의 수에서 특정 개수를 수를 뽑아내는데 주로 사용하는 방법이 나머지를 사용하는 방법입니다.
(난수)%6을 하면 0~5의 나머지가 나오게 됩니다. 이 나머지에 +1을 하게 되면 주사위와 같이 1~6의 랜덤수가 나오게 되죠.
2)
변수 i가 어떻게 변화하는지 확인해보세요.
do ~ while문에서 i는 주사위를 100번 굴리는데 매번 굴린 횟수를 확인하는 용도였지만,
for문에 입장하면서 다시 0~5까지 증가하여 hist 배열의 주소값의 용도로 사용됩니다.
하나의 변수가 반드시 하나의 용도로만 쓰일 필요는 없습니다.
일반적으로 하나의 알고리즘만을 담은 정보처리기사/산업기사 문제에서는 하나의 변수가 2개 이상의 용도로 사용되는 경우는 거의 없으나, 사용자들의 혼란을 유도하기 위해 고의적으로 해당 문제와 같이 사용될 수 있다는 점에 유의해두세요.
행복한 하루되세요 :)