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

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

Patricia Arquette
Patricia Arquette원래의
2024-12-23 05:25:32431검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.