在用计算机的一些智能算法(GA,PSO,ANN etc.)仿真时经常需要随机生成初始种群(初始样本),看看<stdlib.h>中的这两个函数的伪随机数生成吧~~~
1. 生成[a,b]之间的一个实数和一个整数
-
-
-
-
-
- #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);
- }
以上代码中的每个函数只能生成一个随机数,至于为什么呢?