4월 192007
 

거꾸로 생각해보세요

컴퓨터가 낸 정답을 맞추는 프로그램이라면

일단 random함수로 컴퓨터가 일정한 수를 생성한 후

사용자가 답을 입력하면 그수와 비교하여 크다, 작다, 같다

3가지 상태를 출력시키죠. 만일 10을 입력했느데 작다라고 나왔으면

사용자가 더 큰 수를 입력하게 되고 더 큰 수를 입력(13)했는데 그

것보다 작다라고 나오면 사용자는 답이 11, 12중에 하나인 것을 알 수

있죠

거꾸로 해봅시다. 사용자가 일정한 수를 생각을 하고 있어요

만일 답의 범위가 1 ~ 100까지의 정수라고 하면

컴퓨터는 1 ~ 100까지의 랜덤한 수 하나를 만들어 사용자에게

물어보겠지요?

아 그리고 어떤 언어를 쓰느냐 따라서 랜덤함수가 달라지므로

랜덤하게 만드는 함수를 random()이라고 하죠

1~100사이에 랜덤수를 만들려면

random()%100하면 1 ~ 100까지의 정수가 나오겠죠?

그래서 나온 수(만일 50이라 합시다)를 사용자가 작다고 하면

random()%50합니다. 크면은 random()%50 + (100 – 50)하면 되겠죠?

이렇게 계속 루프를 돌리면 아마 어느 순간에는 컴퓨터도 답을

찾을 겁니다. 그러기 위해선 random()함수를 %하는 operand를 상수로

사용하면 안되고 변수로 선언해야겠지요.

물론 그변수와 사용자가 입력하는

값을 동일시 사용하면 되겠고요

즉 중요한 랜덤값 생성하는 코드
x = random()%y, x = random()%y + (100 – y)를 if문을 이용하여

잘 제어하면 숙제 끝나겠네요.

잘 생각해보세요

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>