> 일반적인 문제 > C 언어에서 난수를 생성하는 방법

C 언어에서 난수를 생성하는 방법

清浅
풀어 주다: 2020-10-12 16:14:22
원래의
94762명이 탐색했습니다.

C 언어에서 rand() 함수를 사용하면 0과 RAND_MAX(32767) 사이의 임의의 정수를 생성할 수 있습니다. srand()를 사용하여 임의의 값을 설정할 수 있습니다. 숫자 시드. 기본 난수 시드는 1입니다. 1-100 범위의 임의의 정수를 생성하려면 "rand()%100"을 사용해야 합니다.

C 언어에서 난수를 생성하는 방법

【추천 튜토리얼: C 언어 튜토리얼

C 언어에서는 rand 함수를 사용하여 난수를 생성할 수 있습니다. rand 함수는 지정된 순서로 정수를 생성합니다. 그러나 C 언어에서 생성된 무작위성은 진정한 무작위성이 아니며 때로는 의사 난수라고 불릴 수도 있습니다.

rand()를 사용하여 난수를 생성하기 전에 난수 생성기의 초기화 함수 srand(부호 없는 시드)를 사용하여 의사 난수 시퀀스를 초기화해야 합니다. 시드를 랜덤 시드라고도 합니다. 한 라운드에서 생성된 여러 개의 무작위 값은 모두 동일하므로 의사 난수(pseudo-random number)라고 부르므로, 완전한 무작위성을 달성하려면 일반적으로 매번 다른 시드 값을 제공해야 합니다. C 언어에서는 시간 값이 매초 다르기 때문에 시간 함수 time(null)을 시드로 사용합니다.

예:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(1);
    int i;
    for (i = 0; i < 10; i++)
    printf("%d, ", rand()%11); 
}
로그인 후 복사

결과는 8, 9, 9, 1, 7, 5, 5입니다. , 10, 1, 0,

위 결과는 아무리 많이 실행해도 랜덤 시드가 1이기 때문입니다

하지만 시드 값을 시간(null)으로 변경하면 상황이 달라집니다

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(time(NULL));
    int i;
    for (i = 0; i < 10; i++)
    printf("%d, ", rand()%11); 
}
로그인 후 복사

결과는 다음과 같습니다: 6, 3, 4, 5, 5, 9, 8, 10, 10, 4

다시 클릭: 6, 4, 2, 4, 3, 2, 5, 1, 2, 9

여기서 시간(null)의 영향으로 시드가 계속 변경됩니다. 새로운 난수가 계속 생성됩니다.

추천 관련 기사: Javascript에서 난수를 생성하는 방법

요약: 위 이 글의 전체 내용입니다. 모든 분들께 도움이 되길 바랍니다

위 내용은 C 언어에서 난수를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿