안녕하세요? ^^
rand() 함수에서 매번 똑같은 수가 나옵니다.
srand() 는 뭐죠? 이것을 해주지 않으면 항상 1이 나온다고 하던데...
( 리눅스 한글화 해서 man 보면 한글로 나오나요? --; )
실행할때마다 똑같이 나오지 않게 하는 방법이 뭐죠? ^^;;
답변 부탁드립니다~ )
rand() 는 수학적연산에 의해서 임의의 수를 구하기 때문에.. 시작을 결정하는 seed 값이 같으면 항상 같은 값이 나오죠.. srand 는 seed 값을 결정해주는 함수구요.. (아마 microtime 이 기준이구요..)
그게 맘에 안드시면 /dev/random /dev/urandom 을 쓰셔도 되긴합니다.. (man urandom)
안녕하세요? ^^;
man urandom
을 치면... urandom 에 대해서 찾을수 없다고 나옵니다.
이럴때는 무엇을 설치해야 하죠? ^^;
그리고... srand() 에는 그럼 어떤값을 넣어주어야 하죠?
답변 부탁드립니다~! )
iron wrote.. rand() 는 수학적연산에 의해서 임의의 수를 구하기 때문에.. 시작을 결정하는 seed 값이 같으면 항상 같은 값이 나오죠.. srand 는 seed 값을 결정해주는 함수구요.. (아마 microtime 이 기준이구요..) 그게 맘에 안드시면 /dev/random /dev/urandom 을 쓰셔도 되긴합니다.. (man urandom)
urandom 은 커널레벨에서 지원하는것입니다.. 커널 옵션에 따라서 동작하지 않을수 있습니다.. urandom manpage 는 데비안에서는 manpages 패키지에 있는데요... 다른 배포본은 잘 모르겠네요.. 혹시 배포본이 오래된게 아닌지요 -.-;;
srand 는 보통 srand(time(NULL)) 이렇게 많이 쓰는 것 같습니다만 -.-a
man 4 urandom 해보시고,...
그냥 rand나 random함수를 쓰실거면, seed로 잘 겹치지않는수 (gettimofday로 읽은 tv_usec등이 좋겠죠?)를 쓰시면 별 문제 없을겁니다.
struct timeval seed; gettimeofday( &seed, NULL ); srandom( seed.tv_usec ); cout << random() << endl;
shuffle 알고리즘을 만들어 돌려주세요
날짜를 잘 보세요. 18년 전에 답글이 끊겼습니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re: rand() 에서 매번 똑같은 수가...
rand() 는 수학적연산에 의해서 임의의 수를 구하기 때문에..
시작을 결정하는 seed 값이 같으면 항상 같은 값이 나오죠..
srand 는 seed 값을 결정해주는 함수구요..
(아마 microtime 이 기준이구요..)
그게 맘에 안드시면 /dev/random /dev/urandom 을 쓰셔도 되긴합니다..
(man urandom)
no entry....
안녕하세요? ^^;
man urandom
을 치면... urandom 에 대해서 찾을수 없다고 나옵니다.
이럴때는 무엇을 설치해야 하죠? ^^;
그리고... srand() 에는 그럼 어떤값을 넣어주어야 하죠?
답변 부탁드립니다~! )
iron wrote..
rand() 는 수학적연산에 의해서 임의의 수를 구하기 때문에..
시작을 결정하는 seed 값이 같으면 항상 같은 값이 나오죠..
srand 는 seed 값을 결정해주는 함수구요..
(아마 microtime 이 기준이구요..)
그게 맘에 안드시면 /dev/random /dev/urandom 을 쓰셔도 되긴합니다..
(man urandom)
Re^3: no entry....
urandom 은 커널레벨에서 지원하는것입니다..
커널 옵션에 따라서 동작하지 않을수 있습니다..
urandom manpage 는 데비안에서는 manpages 패키지에 있는데요...
다른 배포본은 잘 모르겠네요..
혹시 배포본이 오래된게 아닌지요 -.-;;
srand 는 보통 srand(time(NULL)) 이렇게 많이 쓰는 것 같습니다만 -.-a
Re^4: no entry....
man 4 urandom 해보시고,...
그냥 rand나 random함수를 쓰실거면,
seed로 잘 겹치지않는수 (gettimofday로 읽은
tv_usec등이 좋겠죠?)를 쓰시면 별 문제 없을겁니다.
struct timeval seed;
gettimeofday( &seed, NULL );
srandom( seed.tv_usec );
cout << random() << endl;
shuffle
shuffle 알고리즘을 만들어 돌려주세요
날짜를 잘 보세요. 18년 전에 답글이 끊겼습니다.
날짜를 잘 보세요. 18년 전에 답글이 끊겼습니다.
댓글 달기