현재 위치 - 주공해몽공식사이트 - 랜덤 번호 뽑기 점술 - 난수를 추출하기 위해 c 언어를 쓰는 방법

난수를 추출하기 위해 c 언어를 쓰는 방법

소스 코드와 알고리즘은 다음과 같이 해석됩니다.

1- 10 난수 프로그램 생성:

# include & ltiostream & gt

# include & lttime.h & gt

네임스페이스 STD 사용

Int main ()

{

Constint n =10; //난수 수 정의

Intnumber [n] = {null}; //난수를 저장하는 데 사용되는 배열을 정의합니다.

Srand (부호 없는) 시간 (비어 있음); //임의 함수 초기화

Number [0] = rand ()% n; //첫 번째 난수는 비교할 필요가 없습니다.

Cout & lt< number [0] < & lt "";

For (int I =1; 나 & ltn;; I++)// 나머지 난수 순환 생성.

{

Intj = 0;

Number [I] = rand ()% n; //난수 생성

While (1)

{

If (number[i] == number[j])// 같은 경우 난수 재정렬을 계속합니다.

{

Number [I] = rand ()% n; //난수 생성

J = 0;; //같은 것을 만나면 처음부터 순회한다.

계속;

}

If (j == (i- 1))// 횡단이 완료되면 튀어나온다.

깨뜨리다

J++;+;

}

Cout & lt& lt 숫자 [I] < & lt "";

}

Cout & lt& ltendl

0 을 반환합니다

}

프로그램 실행 결과는 다음과 같습니다.

확장 데이터:

벡터를 사용하여 난수를 출력합니다.

# include & ltiostream & gt

# include & ltvector & gt

# include & lttime.h & gt

네임스페이스 STD 사용

Int main ()

{

Constint n =10;

Int randnum

벡터 & ltint & gt 번호;

For(int I = 0;; 나 & ltn;; I++)

{

Number.push _ back (I+1); //꼬리에서 요소 추가

Cout & lt& lt 숫자 [I] < & lt "";

}

Cout & lt& ltendl

Srand (부호 없는) 시간 (비어 있음);

For(int j = 0;; J & ltn;; J++)? //나머지 난수 루프는 생성됩니다.

{

Randnum = rand ()% (n-j); //rand 함수에 의해 생성된 난수는 0-(n- 1) 입니다.

Cout & lt & ltnumber.at (randnum) < & lt "";

Number.erase (number.begin ()+randnum);

}

Cout & lt& ltendl

0 을 반환합니다

}