C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[33266] Re:random()함수가 이상해요?
이지현 [cappuccino] 1579 읽음    2003-08-31 01:32
음... 엄밀히 randseed 값이 어떤 테이블의 인덱스인건 아니죠.
그렇게 생각하면, 32비트 랜덤을 위해선 4294967296 개(*4byte) 의 배열이 필요한데
당연히 이런 구조는 아니구요 ^^
통계학에서 말하는 common distribution (모든 경우가 골고루 나오는 일반 분포)
가 이상적인 랜덤인데, 이를 위해 통계학자들이 적당히 수를 뒤집어 골고루 나올 수
있게끔 연구를 하고 있죠.

여기서 수를 뒤집는다는 말은... flipping 과 folding 같은 걸 의미하는데...
randseed 값을 얼마간 SHIFT 나 ROTATE 한다든지, 상 하위 바이트를 XOR 한다든지
하는 식으로 숫자를 뒤집는 방식이죠.
이런식으로 randseed 값을 매 번 바꾸게끔 되어 있고...
당연히 이 randseed 값은 random 함수 내부에 static하게 선언된 변수라고 보시면 되고,
해미님이 말씀하셨던 것 처럼 randomize() 함수는 time.h 를 include 하셔야 쓸 수 있고, 현재의 시간을 randseed 에다 더해, 규칙이 존재하는 random 함수에 노이즈를 제공하죠.
이런 시간을 더하는 방법 이외에도... 키보드가 스트록 되는 간격을 잰다든지 특정 포트에서 들어오는 IO의 값을 이용한다든지 하는 노이즈 생성법이 있습니다.
설명이 장황해졌군요.

+ -

관련 글 리스트
26954 random()함수가 이상해요? 주디 1523 2003/08/27
33266     Re:random()함수가 이상해요? 이지현 1579 2003/08/31
33265     Re:random()함수가 이상해요? 정성훈.해미 1450 2003/08/27
33264     Re:random()함수가 이상해요? 정성훈.해미 1109 2003/08/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.