要产生真正的随机数还是有难度的!好在VC中提供有随机数函数,rand()函数。MSDN中定义如下:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main( void )
{
int i;
/* Seed the random-number generator with current time so that * the numbers will be different every time we run. */
srand( (unsigned)time( NULL ) ); /* Display 10 numbers. */ for( i = 0; i < 10;i++ )
printf( " %6d/n",rand() );
}
产生0 1代码
#include <iostream>
#include <stdio.h>
#include <time.h>
using namespace std;
#define MAX 10
int main()
{
int out;
srand((unsigned)time(NULL));//时间函数作为种子。程序执行一次和下一次执行,时间函数是不一样的,所以结果不一样。
//但是如果程序执行多篇,结果哦就是一样的了!看样子还得MATLAB解决了!
for(int i=0;i<12;i++)
{
if(rand()%MAX>4)
out=1;
else
out=0;
cout<<out<<endl;
}
return 0;
}
这是没有问题的,但要产生10个种群,也就是10个产生为12的群体时,就发现不行了!
#include <iostream>
#include <stdio.h>
#include <time.h>
using namespace std;
#define MAX 10
int main()
{
int out;
for(int j=0;j<10;j++)
{
srand((unsigned)time(NULL));
for(int i=0;i<12;i++)
{
if(rand()%MAX>4)
out=1;
else
out=0;
cout<<out<<endl;
}
cout<<'/n'<<endl;
}
return 0;
}
结果10个一样的长度为12的个体!