Microsoft MVP성태의 닷넷 이야기
랜덤함수 질문있습니다!! [링크 복사], [링크+제목 복사],
조회: 14905
글쓴 사람
한예지 donator
홈페이지
첨부 파일
 

선생님 안녕하세요!

Random rand = new Random( int seed);

MSDN에는 seed를 다음과 같이 설명했더라구요.

A number used to calculate a starting value for the pseudo-random number sequence.
의사 난수열의 시작값(특정한 규칙을 통해 마치 난수처럼 보이도록 하는 수)을 계산하는데 사용되는 수라고 해석을 했습니다.
 
쉽게 말하면 운영체제들은 정해진 순서의 난수표가 존재하는데
seed는 난수표의 번호를 의미한다고 받아들여도 문제가 없을까요?

항상 좋은 답변 감사드립니다!








[최초 등록일: ]
[최종 수정일: 6/21/2021]


비밀번호

댓글 작성자
 



2021-06-21 10시27분
특정 운영체제는 난수표를 가지고 있을지도 모릅니다. 하지만, 아마도 대부분의 경우 일정한 계산식을 바탕으로 하기 때문에 첫 번째 수가 같다면 이후의 일련의 수들이 같게 됩니다. 일례로 아래의 글에 보면,

Dan's coding practice area
; http://cer.freeshell.org/renma/LibraryRandomNumber/

(현재도 그런지는 뜯어봐야 알겠지만) C/C++의 경우 다음과 같은 의사 난수 생성 함수를 취하고 있습니다.

static unsigned long int next = 1;

int rand(void) // RAND_MAX assumed to be 32767
{
      next = next * 1103515245 + 12345;
      return (unsigned int)(next/65536) % 32768;
}

참고로 아래의 연관 글도 보시고. ^^

WELL512 난수 발생 알고리즘 - C#
; https://www.sysnet.pe.kr/2/0/1264
정성태
2021-06-22 11시50분
[한예지] Thank you for answering my question!!
[guest]

NoWriterDateCnt.TitleFile(s)