> 백엔드 개발 > C++ > C에서 임의의 부동 소수점을 어떻게 생성할 수 있습니까?

C에서 임의의 부동 소수점을 어떻게 생성할 수 있습니까?

Patricia Arquette
풀어 주다: 2024-12-23 05:25:32
원래의
471명이 탐색했습니다.

How Can I Generate Random Floats in C  ?

C에서 임의의 부동 소수점 생성

C에서 임의의 부동 소수점을 생성하는 작업은 내장된 rand()를 활용하여 수행할 수 있습니다. 의사 난수 정수를 생성하는 데 일반적으로 사용되는 함수입니다. 그러나 rand()를 값으로 나누면 임의 부동 소수점을 생성하기에 충분하다는 가정은 올바르지 않습니다.

임의 부동 소수점을 효과적으로 얻으려면 다음 접근 방식을 사용할 수 있습니다.

0 ~ 1 범위:

0.0과 1.0(포함) 사이의 임의 부동 소수점을 생성하려면 아래 표현식을 사용하세요. 적절한 값 제공:

float r = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
로그인 후 복사

0 ~ 임의 부동:

0.0과 임의 부동 소수점 값 X ​​사이의 임의 부동 소수점을 생성하려면 다음 표현식을 사용할 수 있습니다. 고용:

float r2 = static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / X));
로그인 후 복사

임의 범위:

임의 값 LO 및 HI로 정의된 범위 내에서 임의의 부동 소수점을 생성하려면 다음 표현식이 원하는 결과를 제공합니다.

float r3 = LO + static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / (HI - LO)));
로그인 후 복사

rand() 함수는 다양한 애플리케이션에 필수적인 진정한 난수를 항상 제공하는 것은 아닙니다.

rand()를 사용하기 전에 난수를 초기화하는 것이 필수입니다. srand()를 사용하여 시드 값을 갖는 숫자 생성기. 이 초기화를 통해 프로그램 실행 중에 다양한 난수 시퀀스가 ​​생성됩니다. 일반적인 관행은 다음과 같이 time(0)을 활용하여 시스템 시계를 기반으로 시드를 생성하는 것입니다.

srand(static_cast<unsigned int>(time(0)));
로그인 후 복사

rand 및 srand를 사용하려면 헤더. 또한 시간에는 헤더.

위 내용은 C에서 임의의 부동 소수점을 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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