[C.C++] c语言随机浮点数,C随机浮点数生成

106 0
Honkers 昨天 23:59 | 显示全部楼层 |阅读模式

rand()可以用于在C中生成psudo随机数。结合RAND_MAX和一个小数学,你可以在你选择的任何任意间隔生成随机数。这足以用于学习目的和玩具程序。如果你需要真正的具有正态分布的随机数,你需要采用更先进的方法。

这将生成一个从0.0到1.0(含)的数字。

float r = static_cast (rand()) / static_cast (RAND_MAX);

这将产生一个从0.0到某个任意浮点数,X:

float r2 = static_cast (rand()) / (static_cast (RAND_MAX/X));

这将生成从一些任意LO到一些任意HI的数:

float r3 = LO + static_cast (rand()) /( static_cast (RAND_MAX/(HI-LO)));

注意,如果你需要真正的随机数,rand()函数通常是不够的。

在调用rand()之前,必须首先通过调用srand()来“随机化”随机数生成器。这应该在程序运行期间执行一次 – 不是每次调用rand()时都执行一次。这通常这样做:

srand (static_cast (time(0)));

为了调用rand或srand,你必须#include< cstdlib> ;.

要调用时间,您必须#include< ctime> ;.

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

特级红客

关注
  • 3299
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行