c语言浮点型随机数函数 c++ 随机浮点数

C语言产生一个固定区间内的浮点型随机数,怎么办rand() 随机函数 。
srand((unsigned)time(NULL))则使用系统定时/计数器的值作为随机种子 。每个种子对应一组根据算法预先生成的随机数c语言浮点型随机数函数,所以,在相同的平台环境下,不同时间产生的随机数会是不同的 , 相应的,若将srand(unsigned)time(NULL)改为srand(TP)(TP为任一常量),则无论何时运行、运行多少次得到的“随机数”都会是一组固定的序列,因此srand生成的随机数是伪随机数 。[1]
库函数中系统提供了两个函数用于产生随机数c语言浮点型随机数函数:srand()和rand() 。原型为:
函数一:int rand(void);
【c语言浮点型随机数函数 c 随机浮点数】返回一个[0,RAND_MAX]间的随机整数 。
函数二:void srand(unsigned seed);
参数seed是rand()的种子,用来初始化rand()的起始值 。
但是,要注意的是所谓的“伪随机数”指的并不是假的随机数 。其实绝对的随机数只是一种理想状态的随机数,计算机只能生成相对的随机数即伪随机数 。计算机生 成的伪随机数既是随机的又是有规律的 —— 一部份遵守一定的规律,一部份则不遵守任何规律 。比如“世上没有两片形状完全相同的树叶”,这体现到了事物的特性 —— 差异性;但是每种树的叶子都有近似的形状,这正是事物的共性 —— 规律性 。从这个角度讲,c语言浮点型随机数函数我们就可以接受这样的事实了:计算机只能产生伪随机数而不是绝对的随机数 。
系统在调用rand()之前都会自动调用srand(),如果用户在rand()之前曾调用过srand()给参数seed指定了一个值,那么 rand()就会将seed的值作为产生伪随机数的初始值;而如果用户在rand()前没有调用过srand(),那么系统默认将1作为伪随机数的初始 值 。如果给了一个定值 , 那么每次rand()产生的随机数序列都是一样的~~
所以为了避免上述情况的发生我们通常用srand((unsigned)time(0))或者srand((unsigned)time(NULL))来 产生种子 。如果仍然觉得时间间隔太小,可以在(unsigned)time(0)或者(unsigned)time(NULL)后面乘上某个合适的整数 。例如,srand((unsigned)time(NULL)*10)
另外 , 关于time_t time(0):time_t被定义为长整型,它返回从1970年1月1日零时零分零秒到目前为止所经过的时间 , 单位为秒 。
固定区间[a,b]内的浮点型随机数 :
例子:(a (b-a)*rand()/(RAND_MAX))
c语言rand怎么随机产生浮点型数#includelt;stdlib.hgt;
#includelt;time.hgt;
#includelt;iostream.hgt;
#define MAX_RANDOM 1000//这个是产生随机数的最大值,但是取浮点数,所以要除去的
#define NUM 2500
double random(double a,double b)//这个是产生随机数函数,由于库函数功能有限,所以要自己封装一下
{
return(rand()%(int)((b-a)*MAX_RANDOM))/(double)MAX_RANDOM a;
}
void main()
{
double Dran[NUM (NUM-1)*4];
double ran[(NUM-1)*4];
double a,b;
int k=0;
srand((unsigned)time(NULL));//这个是设定随机数的种子数 , 由于种子数相同产生的随机数相同,所以取时间做种子
coutlt;lt;"***********************************亲体**************************"lt;lt;endl;
for(int i=0;ilt;NUM (NUM-1)*4;i=i 5)//获得了亲体
{
Dranlt;igt;=random(10,20);
coutlt;lt;Dranlt;igt;lt;lt;"";
}
/*
coutlt;lt;"***********************************后代**************************"lt;lt;endl;
//Dran里面是装的亲代和后代一起的,ran里面只是装的后代
for(i=0;ilt;NUM (NUM-1)*4-1;i=i 5)
{
a=Dranlt;igt;;
b=Dran[i 5];
for(int j=1;jlt;=4;j)
{
Dran[i j]=random(a,b);
ran[k]=Dran[i j];
coutlt;lt;ran[k]lt;lt;"";
k;
}
}
*/
}
(rand()%(int)((b-a)*MAX_RANDOM))/(double)MAX_RANDOM a这个产生浮点数.
扩展资料:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏 。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置 。有两种方式可以指定插入头文件:
1、#includelt;文件名gt;
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式 。如下例所示:
#includelt;math.hgt;//一些数学函数的原型 , 以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式 。
采用#include命令所插入的文件,通常文件扩展名是.h , 文件包括函数原型、宏定义和类型定义 。只要使用#include命令,这些定义就可被任何源文件使用 。
c语言随机数函数是什么?c语言随机数函数是 rand()
若要输出1~10之间c语言浮点型随机数函数的随机数c语言浮点型随机数函数,
可用rand() 1 。
数据结构(C语言)中怎样产生浮点型的随机数?希望大神指教这个取决于c语言浮点型随机数函数你要求c语言浮点型随机数函数的浮点型随机数范围 。
比如 你要产生0~100之间的 浮点型随机数c语言浮点型随机数函数 , 一位小数 。
那么可以
rand()00 *0.1
前面部分 产生0~999的整数随机数
*0.1后,变为浮点型,也就是0.0~99.9
C语言中取随机数的函数1. 基本函数
在C语言中取随机数所需要的函数是:
 int rand(void); void srand (unsigned int n);
rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件:
 #include stdlib.h
2. 使用方法
rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom) 。RAND_MAX常量被定义在stdlib.h头文件中 。其值等于32767 , 或者更大 。
srand()函数使用自变量n作为种子,用来初始化随机数产生器 。只要把相同的种子传入srand() , 然后调用rand()时,就会产生相同的随机数序列 。因此 , 我们可以把时间作为srand()函数的种子,就可以避免重复的发生 。如果 , 调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样 。
举个例子,假设我们要取得0~10之间的随机整数(不含10本身):
 /* 例1:不指定种子的值 */
 for (int i=0; i10; i) {printf("%d ", rand()); }
每次运行都将输出:1 7 4 0 9 4 8 8 2 4
 /* 例2:指定种子的值为1 */
 srand(1); for (int i=0; i10; i) {printf("%d ", rand()); }
每次运行都将输出:1 7 4 0 9 4 8 8 2 4
例2的输出结果与例1是完全一样的 。
 /* 例3:指定种子的值为8 */ srand(8); for (int i=0; i10; i) {printf("%d ", rand()); }
每次运行都将输出:4 0 1 3 5 3 7 7 1 5
该程序取得的随机值也是在[0,10)之间 , 与srand(1)所取得的值不同,但是每次运行程序的结果都相同 。
 /* 例4:指定种子值为现在的时间 */ srand((unsigned)time(NULL)); for (int i=0; i10; i) {printf("%d ", rand()); }
该程序每次运行结果都不一样,因为每次启动程序的时间都不同 。另外需要注意的是 , 使用time()函数前必须包含头文件time.h 。
 3. 注意事项
求一定范围内的随机数 。
如要取[0,10)之间的随机整数,需将rand()的返回值与10求模 。
 randnumber = rand() % 10;
那么 , 如果取的值不是从0开始呢?你只需要记住一个通用的公式 。
要取[a,b)之间的随机整数(包括a,但不包括b) , 使用:
(rand() % (b - a))a
伪随机浮点数 。
要取得0~1之间的浮点数,可以用:
rand() / (double)(RAND_MAX)
如果想取更大范围的随机浮点数 , 比如0~100,可以采用如下方法:
rand() /((double)(RAND_MAX)/100)其他情况,以此类推 , 这里不作详细说明 。
关于c语言浮点型随机数函数和c随机浮点数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读