C语言区间随机数生成 with srand() & rand() & time()
在用计算机的一些智能算法(GA,PSO,ANN etc.)仿真时经常需要随机生成初始种群(初始样本),看看<stdlib.h>中的这两个函数的伪随机数生成吧~~~
1. 生成[a,b]之间的一个实数和一个整数
- /*
- 定义函数 int rand(void);
- 函数说明 rand()会返回一随机数值,范围在0至RAND_MAX 间。
- 在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。
- 关于随机数种子请参考srand()。
- 返回值 返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为2147483647。
- 范例 :
- */
- #include <stdlib.h>
- #include <stdio.h>
- 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);
- }
以上代码中的每个函数只能生成一个随机数,至于为什么呢?
相关推荐
qscool 2020-05-06
coolphxnuaa 2012-06-03
聪聪李 2020-06-13
jessieHJ 2020-05-31
xinhao 2020-05-28
czsay 2020-05-25
xiechao000 2020-04-21
Lexan 2020-04-15
idning 2020-03-08
IBMRational 2020-03-07
zuihaobushi 2020-02-24
Canethui 2020-02-22
蜗牛慢爬的李成广 2020-02-02
明天你好 2020-01-28
yfisaboy 2020-01-19
风吹夏天 2020-01-10
idning 2020-01-06
georgeandgeorge 2019-12-28
oraclemch 2019-12-12