如何用VC抽取随机数0到100,并能统计概率 20CSDN
1个回答
展开全部
C++中用来产生随机数的函数为rand(), 其返回值为整数。而0到1之间的随机数,明显是浮点数。这样无法直接产生。于是,必须经过转换。转换思路为,生成一个0-N的随机数,然后对其除以N+1,则可以得到0-1直接的浮点型随机数。N的确定,可以与要求的精度有关,比如需要三位小数,可以采用N=999,如需要四位,则采用N=9999,以此类推。具体操作如下:<pre t="code" l="cpp">#include <cstdlib>
#include <ctime>
void get_rand(float *p, int n)//函数功能为产生n个0-1的随机数,存储于数组p中。
{
int i;
#define N 999 //三位小数。
srand(time(NULL));//设置随机数种子,使每次获取的随机序列不同。
for(i = 0; i < n; i ++)
p[i] = rand()%(N+1)/(float)(N+1);//生成0-1间的随机数。
}
#include <ctime>
void get_rand(float *p, int n)//函数功能为产生n个0-1的随机数,存储于数组p中。
{
int i;
#define N 999 //三位小数。
srand(time(NULL));//设置随机数种子,使每次获取的随机序列不同。
for(i = 0; i < n; i ++)
p[i] = rand()%(N+1)/(float)(N+1);//生成0-1间的随机数。
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询