#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#define pailiejuxingnum 8
#define chushiyinghuochongnum 10
int yinghuochong[chushiyinghuochongnum+1][pailiejuxingnum+1];
int pailiejiaodu[chushiyinghuochongnum+1][pailiejuxingnum+1];
double chayishu[chushiyinghuochongnum+1][chushiyinghuochongnum+1];
void shengchengfirefly()
//生成初始萤火虫
{
int i,j,k;
srand(time(0));
printf("初始萤火虫是:\n");
for(i=1;i<=chushiyinghuochongnum;i++)
{
for(j=1;j<=pailiejuxingnum;j++)
{
pailiejiaodu[i][j]=rand()%2;
yinghuochong[i][j]=rand()%pailiejuxingnum+1;
for(k=1;k<j;k++)
{
if(yinghuochong[i][j]==yinghuochong[i][k])
{
yinghuochong[i][j]=rand()%pailiejuxingnum+1;
k=0;
}
}
printf("%d,%d\t",yinghuochong[i][j],pailiejiaodu[i][j]);
}
}
}
void main()
{
//计算任何两个萤火虫之间的元素差异数
int i,j,k;
shengchengfirefly();
for(i=1;i<=chushiyinghuochongnum;i++)
{
for(j=1;j<=chushiyinghuochongnum;j++)
{
int t=0;
for(k=1;k<=pailiejuxingnum;k++)
{
if(yinghuochong[i][k]!=yinghuochong[j][k])
t=t+1;
}
chayishu[i][j]=t;
//此时的i,j表示某两个个萤火虫之间
printf("第%d与%d个萤火虫间汉明距离:%d\n",i,j,chayishu[i][j]);
t=0;
//两个萤火虫之间代码不同的数量
}
}
}
//基于轮盘赌方式选择移动
比自身荧光亮度大的方向移
不知道有什么问题,怎么回事?!