CAFE

ASP.NET 질문

자답..태요에서 퍼옴

작성자찌애|작성시간06.08.21|조회수99 목록 댓글 2

함수로 초기화 해야 한다는 부분과.. 왜 반드시 초기화를 해야 하는지 에 대한 내용은

제가 알고 있던 내용하고 좀 다르구요...



밑의 내용은 ms 에서 퍼왔습니다.



"응용 프로그램에 다른 난수 시퀀스가 필요하면 다른 seed 값을 사용하여 이 생성자를 반복적으로 호출합니

다. 고유한 seed 값을 생성하는 한 가지 방법은 시간에 따라 달라지도록 하는 것입니다. 예를 들어, 시스템 시

계에서 seed 값을 파생합니다.



그러나 이 생성자가 호출되는 중간에 시스템 시계이 변경될 시간이 없을만큼 빠른 컴퓨터에서 응용 프로그램

을 실행하면 Random의 다른 인스턴스에 대해 seed 값이 동일할 수 있습니다. 이 경우 각 호출에서 seed 값

을 구별하기 위한 알고리즘을 적용합니다.



예를 들어, 다음 C# 식은 시스템 시간 값이 동일한 경우에도 비트 보충 연산을 사용하여 두 개의 다른 seed 값

을 생성합니다. "



위의 말을 잘들어 보면  난수 발생을 초기화하는게 아니라 seed 라는 값이  고유해야 난수가 시퀀스하게

발생할수 있다는것이고 c# 에서는 random 생성자에서 이를 지원해주고 있내요....





public static int seed = 0;

private string subGenOID(int ref_cp_size)

{

string[] arrValue =

{



"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M

", "N", "O",

"P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};

int intSizeArr = (arrValue.Length - 1);



string strRnd = "";

System.Random objRnd = new Random(seed +=1);

for (int j=0;j<ref_cp_size;j++)

{

int i = objRnd.Next(0, intSizeArr);

strRnd += arrValue[i];

}



return strRnd;

}









private void Page_Load(object sender, System.EventArgs e)

{

// 여기에 사용자 코드를 배치하여 페이지를 초기화합니다.





for (int i=0;i<10;i++)

{

Response.Write (subGenOID(10)+")<br>");

}





Response.End ();





}





위에처럼 생성자를 보시고 seed 변수를 보시면

이해 하실것 같내요...
다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자심재운 | 작성시간 06.08.21 빨리도 답변 올리셨네요. ㅎㅎㅎ 보통 저는 난수로 첫페이지 디자인화면 바꿀때 많이 사용하는데..ㅎㅎㅎ
  • 작성자찌애 작성자 본인 여부 작성자 | 작성시간 06.08.25 아~ 첫페이지 다지안화면을바꿀때 사용하신다고용?? _- 무슨말 이신지 ㅜ-ㅜ 알려주삼~
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼