好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
C++随机浮点数的生成 关闭 返回上一级  

C++随机浮点数的生成
+ 查看更多

发布日期:2018-02-26 14:31
分类:CPlusPlus
浏览次数:251
我如何在C++中生成一个随机的浮点数?我觉得我可以先得到一个随机的整数,然后用某个数去除它,这样做是不是足够充分?

回答

rand()能在C++中产生一个伪随机数。在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)));
你必须包含#include 来调用rand或者srand。
你必须包含#include 来调用time。
上一篇我怎样获取一个当前程序的运行目录?
C++中作用于浮点数的 round() 函数下一篇
下一篇C++中作用于浮点数的 round() 函数

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号