c语言产生随机样本点,C语言区间随机数生成 with srand() & rand() & time()

本文介绍了如何在C语言中使用srand()和rand()函数配合time()生成指定区间[a, b]内的随机数,包括实数和整数。通过示例代码展示了如何实现这一功能,适用于需要随机初始种群的智能算法如GA、PSO等仿真实现。
摘要由CSDN通过智能技术生成

C语言区间随机数生成 with srand() & rand() & time()

在用计算机的一些智能算法(GA,PSO,ANN etc.)仿真时经常需要随机生成初始种群(初始样本),看看中的这两个函数的伪随机数生成吧~~~

1. 生成[a,b]之间的一个实数和一个整数

/*

定义函数 int rand(void);

函数说明 rand()会返回一随机数值,范围在0至RAND_MAX 间。

在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。

关于随机数种子请参考srand()。

返回值 返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为2147483647。

范例 :

*/

#include

#include

double doubleRand(double a,double b);

int intRand(int a,int b);

int main(void)

{

double i=doubleRand(2.0,9.0);

int j=intRand(2,9);

printf("%f \n",i);

printf("%d \n",j );

return 0;

}

double doubleRand(double a,double b)

{

double r;

r=(double)rand()/RAND_MAX;

return a+r*(b-a);

}

int intRand(int a,int b)

{

return (int)doubleRand(a,b);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值