메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

제가 알고 있는 난수의 사용방법은
srand( (unsigned int) time( NULL ) );
로 srand를 지정하고
rand()를 해서 랜덤난수를 가져오는 것인데
함수값이 어쩌고 하는 원리더군요
그런데 원리를 생각해 보니 이게 정말 난수의 역할을 해낼수 있을까요?ㅡ,.ㅡ;
애초에 time()이란 함수는 시간을 의미한다고 합니다
그러면 시간이 안 지나면 난수값이 안바뀌는건 아닐까요?
정말 저렇게 써도 암문제 없는건지...
ps:난수발생범위가 30000정도의 수에 제한되는데 늘리는 방법 없을까염
조회 수 :
3868
등록일 :
2008.07.15
05:34:05 (*.50.69.16)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=220037

똥똥배

2008.07.15
07:13:52
(*.193.78.89)
난수는 특별한 공식에 의해서 발생됩니다.
예를 들어 1~3사이의 난수를 발생시키려고 한다면
특수 공식에 의해서 1 1 3 2 3 2 1 식으로 발생하겠죠.
이 공식에 대해서 자세히는 모르지만 모든 수를 공평하게 순서를 알 수 없게 발생시켜 줍니다.
근데 문제는 공식에 의해서 발생되므로 언제나 1 1 3 2 3 2 1 식으로 같은 순서로 난수가 발생한다는 거죠.
여기서 srand의 역할은 그 시작점을 정해주는 겁니다.
정확히 시작점인지 시작되는 인수를 정하는 건지는 몰라도 일단 덮어두고...
아무튼 그 시작되는 수가 보통 때는 언제나 0이라면 srand에서는 time값을 넣어줌으로 시작점을 알 수 없게 만드는 겁니다.
시간에 따라서 시작점이 틀려지니 사실상 어떤 수가 발생할 지는 알 수 없는 것이죠.
이것이 rand와 srand의 원리입니다.

그리고 rand에 제한은 없을 건데요???
제한이 30000이라는 건 어디서 들으신 건지???

A.미스릴

2008.07.16
07:13:32
(*.50.69.16)
rand 소스가 있는 헤더에는 RAND_MAX 라는 #define으로 정의된 상수가 있는데 가 0xffff(30000정도의 수)로 정의되어 있어서
그 수에 해당하는 30000정도까지의 수만 나옵니다
RAND_MAX를 재정의하는 법을 모르겠어요

똥똥배

2008.07.17
03:15:47
(*.239.144.2)

아마 short(과거의 int)정도를 생각한 것 같군요.
그렇다고 해도 간단하지 않습니까?
((rand()%0xffff) << 16) | (rand()%0xffff)
식으로 사용하십시오.

A.미스릴

2008.07.18
05:49:01
(*.50.69.16)
비트 밀기가 잘 사용이 안될 것 같았는데
그런 곳에 많이 쓰이는군요;;
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
85 문D라이브로 더블드래곤을 만들자(6) [2] file 똥똥배 2008-04-23 3114
84 문D라이브로 더블드래곤을 만들자(5) [6] file 똥똥배 2008-04-21 3072
83 C++ 데이터의 바이트 용량 임의로 정의할수 없나영 [1] A.미스릴 2008-04-21 3059
82 문D라이브로 더블드래곤을 만들자(4) [2] file 똥똥배 2008-04-20 3213
81 문D라이브로 더블드래곤을 만들자(3) file 똥똥배 2008-04-18 3430
80 문D라이브로 더블드래곤을 만들자(2) [6] file 똥똥배 2008-04-18 3612
79 VC++ 2008 Express Edition에서 문D라이브 링크 [2] A.미스릴 2008-04-17 13090
78 문D라이브로 더블드래곤을 만들자(1) [2] file 똥똥배 2008-04-16 4479
77 임의의 점이 다각형 내부에 있는지 검사하는 함수 똥똥배 2008-04-14 5358
76 명령문 질문드립니다. [1] X-tra 2008-03-26 2244
75 저는 사실 이걸 잘 못해요. [3] 앟랄 2008-03-26 2282
74 OgreOde 사용기 똥똥배 2008-03-25 3184
73 웹 프로그래밍을 배우려고 합니다. [2] Kadalin 2008-03-22 2171
72 흥크립트 클릭명령 질문입니다. [1] 카시 2008-03-18 2009
71 흥크립트 키입력 질문 [1] A.미스릴 2008-03-15 2363
70 그림 출력의 순서를 알고 싶습니다. [3] X-tra 2008-03-12 2466
69 그러고보니, 흥크립트에서.. [1] 장펭돌 2008-03-10 1693
68 안녕하세요~ 질문하러 왔습니다. [6] X-tra 2008-03-09 1894
67 흥크립트 원인불명 버그... [3] file 네모상자 2008-02-16 738
66 흥크립트 AVI 재생.. [2] 장펭돌 2008-02-14 1851