C 언어, 랜덤 수 생성 방법

1940 단어 C 언어
1. 기본 함수
C 언어에서 랜덤 수를 추출하는 데 필요한 함수는 다음과 같습니다.int rand(void);
void srand (unsigned int n);

rand () 함수와 srand () 함수가 헤더 파일 stdlib에 성명되었습니다.h에서는 두 함수를 사용하려면 헤더 파일을 포함해야 합니다.#include <stdlib.h>
2. 사용법
rand() 함수가 0에서 RAND 로 반환됨맥스 사이의 위조 랜덤수(pseudorandom).RAND_MAX 상수는 stdlib에 정의됩니다.h 헤더 파일에서.그 값은 32767이나 더 크다.
srand () 함수는 임의의 생성기를 초기화하는 데 사용되는 변수 n을 피드로 사용합니다.같은 피드를 srand () 로 보내고 rand () 를 호출하면 같은 무작위 수 서열이 생성됩니다.따라서 우리는 시간을 srand () 함수의 피드로 삼아 중복되는 것을 피할 수 있다.만약rand () 를 호출하기 전에 srand () 를 먼저 호출하지 않았다면, srand (1) 를 미리 호출한 결과와 같습니다.for (int i=0; i<10; i++)
{
printf("%d ", rand()%10);
}

실행할 때마다 출력: 1 7 4 0 9 4 8 2 4srand(1);
for (int i=0; i<10; i++)
{
printf("%d ", rand()%10);
}

실행할 때마다 출력: 1 7 4 0 9 4 8 2 4
예2의 출력 결과는 예1과 완전히 같다.
srand(8);
for (int i=0; i<10; i++)
{
printf("%d ", rand()%10);
}

실행할 때마다 출력: 4 0 1 3 5 3 7 7 1 5
이 프로그램이 얻은 무작위 값도 [0,10) 사이로 srand(1)가 얻은 값과 다르지만 매번 프로그램이 실행될 때마다 결과는 같다.
srand((unsigned)time(NULL));
for (int i=0; i<10; i++)
{
printf("%d ", rand()%10);
}

이 프로그램은 매번 실행할 때마다 결과가 다르다. 왜냐하면 매번 프로그램을 시작하는 시간이 다르기 때문이다.또 주의해야 할 것은 타임 () 함수를 사용하기 전에 헤더 파일 타임을 포함해야 한다는 것이다.h.
3. 주의사항
4
  • 일정한 범위 내의 무작위 수를 구한다

  • [0,10) 사이의 무작위 정수를 찾으려면rand()의 반환값과 10을 구해야 합니다.randnumber = rand() % 10;
    그럼 0부터 시작하는 값이 아니라면?너는 통용되는 공식 하나만 기억하면 된다.
    [a, b) 사이의 무작위 정수(a를 포함하지만 b는 포함하지 않음)를 찾으려면 다음을 사용합니다.
    (rand() % (b - a)) + a
    4
  • 위조 무작위 부동점수

  • 0~1 사이의 부동점수를 얻으려면:
    rand()/(double)(RAND_MAX)
    0~100과 같은 더 넓은 범위의 무작위 부동점수를 얻으려면 다음과 같은 방법을 사용할 수 있다.
    rand()/((double)(RAND MAX)/100) 기타 상황은 여기서 자세히 설명하지 않습니다.
    물론 본고에서 위조 무작위 부동점수를 얻는 방법은 함수의 사용 방법을 설명하는 데 쓰일 뿐이고 너는 더욱 좋은 방법으로 실현할 수 있다.

    좋은 웹페이지 즐겨찾기