rand() 함수 관련 질문인데요...
글쓴이: khaic0c0 / 작성시간: 목, 2003/05/22 - 10:42오전
int answer1; srand( (unsigned)time( NULL ) ); answer1 = rand();
이런식으로 rand() 함수 사용하면,
answer1 값에... 10자리 정도의 숫자들이 랜덤으로 할당됩니다.
그런대 전.. 여기서 두자리만 가져가고 싶거든요.
만약 answer1 값에... 35957092384 이런식으로 값이 들어간다면,
35값만 가져오고 싶어요.
문자열 함수로 가져오면 될듯도 한대 제가 문자열 함수를 잘 모르거든요.
사용법이랑 적당한 함수는 어떤것이 있나요?
그리고 문자열 함수 말고도 다른 방법은 뭐가 있을까요?
근데 제가 man 을 사용하고 싶어도 이상하게 뜨내요...
rand() &&&&&& 0&& RAND_MAX&&&&&& pseudo-random &&&&&&&&&& &&&&. srand() &&&&&& &&&&&& rand()&& &&&&&&&& pseudo-random &&&& && &&&&&& &&&&&& &&&&&& &&&& &&&&&& &&&&&&&&. &&&& &&&&&& &&&&&& &&&& seed &&&&&& srand()&& &&&&&&&& &&&&&&&&. &&&& &&&& seed &&&& &&&&&&&& &&&&&&&&, rand() &&&&&& && && &&&&&& 1 &&&&&& &&&&&& &&&&.
글씨가 이런식으로 나오내요.. 한글로 설치했더니.. 콘설에서는 이런식으로 보이는군요..
여하튼 rand() 함수 사용해서 int 형으로 두자리만 빼오는 것좀 가르쳐주시면 감사하겠습니다.
Forums:
srand( (unsigned)time( NULL ) ); 이부분은 왜사용하죠?
아 그리고 이부분에서 srand( (unsigned)time( NULL ) ); 이걸 꼭 해줘야 되나요?
안해줘도 결과는 똑같던데..
이부분은 왜 해주는건가요?
어딜 가든 필요한 인간되자~~ :-)
음....
꼭 앞자리 수 2개를 빼오시려는게 아니시라면
'35957092384 % 100' 으로 10이상의 수만 뽑으시면 될듯... ^-^a
세상이 뭐라하든... :)
log10 같은 함수를 이용하면 자릿수를 구할 수 있으니까 그 자리수 이
log10 같은 함수를 이용하면 자릿수를 구할 수 있으니까 그 자리수 이용해 10으로 나누어 가면 말씀하신데로 숫자의 윗 부분만 가져올 수 있겠네요..
그리고 srand 를 안하게 되면, rand 함수가 랜덤한 값을 발생하는것은 문제가 없지만 seed 값이 항상 같으므로 실행할때마다 항상 같은 랜덤값만 나오게 됩니다..
...
answer1 /= 1000000000;
세상은 하나..........
rand..
rand()함수는 겉으로는 Random 값을 주는것 같지만..
실제로는 어떤 Seed값에 의한 계산에 의해 나오는 숫자들을
차례대로 리턴할 뿐입니다.
즉..Seed가 같다면 같은 순서의 숫자들이 나오게 되죠..
srand는 rand함수의 Seed를 설정하는 함수입니다.
-----------
청하가 제안하는 소프트웨어 엔지니어로써 재미있게 사는 법
http://sozu.tistory.com
음. 그냥 지나가다가..맨페이지는man -a rand
음. 그냥 지나가다가..
맨페이지는
man -a rand
해보세요.
rommance.net
앞의 두 숫자만 얻기 위해서는..
숫자를 문자열로 바꾼다음 앞의 두칸만 다시 숫자로 바꿔도 되지 않을까요?
댓글 달기