亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? yichuan.txt

?? 遺傳算法的一個代碼
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
  size=(double)(wx*wy);
  num=(int)(size/40.0);
  if(num>MAX_POP) num=MAX_POP;
  for(i=0;i<num;i++)
  {
  find_empty(&x,&y);
  world[x][y]=4;
  }
  num=(int)(size/5.0);
  if(num>MAX_FOOD) num=MAX_FOOD;
  for(i=0;i<num;i++)
  {
  ok=0;
  while(ok==0)
  {
  x=random(wx);y=random(wy);
  if((world[x][y]!=4) &&
  (world[x][y-1]==4 || world[x][y+1]==4 ||
  world[x-1][y]==4 || world[x+1][y]==4))
  { world[x][y]=4;
  ok=1;
  }
  }
  }
  for(y=0;y<wy;y++)
  for(x=0;x<wx;x++)
  if(world[x][y]==0)
  {
  num=0;
  for(i=-1;i<=1;i++)
  for(j=-1;j<=1;j++)
  if(get_world(x+j,y+i)==4)
  num++;
  if(num>=6) world[x][y]=4;
  }
  /* 設定生物 */
  num=(int)(size*R_LIFE);
  for(i=0;i<num;i++)
  { find_empty(&x,&y);
  world[x][y]=random(2)+1;
  }
  /* 設定食物 */
  num=(int)(size*R_FOOD);
  for(i=0;i<num;i++)
  {
  find_empty(&x,&y);
  world[x][y]=3;
  }
  }
  void load_world_file() /* 讀取虛擬環境數據文件設定 */
  {
  FILE *fopen(),*fpt;
  char st[100],c;
  int i,j;
  if((fpt=fopen("\ga\world","r"))==NULL) exit(-1);
  else
  {
  fscanf(fpt,"%d",&wx);
  fscanf(fpt,"%d",&wy);
  for(i=0;i<wy;i++)
  for(j=0;j<wx;j++)
  fscanf(fpt,"%d",&world[j] [ i]);
  fclose(fpt);
  }
  }
  int get_world(x,y) /*坐標(x,y)處環境值 */
  int x,y;
  {
  if(x>=0 && x<wx && y>=0 && y<wy)
  return(world[x][y]);
  else
  return(-1);
  }
  int decode_gene(n,sb,bw) /* 第n個個體基因型解碼 */
  int n,sb,bw; /* sb開始位 bw位長 */
  {
  int i,sum;
  sum=0;
  for(i=sb;i<sb+bw;i++)
  sum=sum*2+gene[n] [ i];
  return(sum);
  }
  void move_pos(n,x1,y1,x2,y2) /* 個體n從(x1,y1)移動到(x2,y2) */
  int n,x1,y1,x2,y2;
  {
  int sp,loss;
  loss=decode_gene(n,12,1)+1; /* 移動消耗 */
  iatr[n][2]=iatr[n][2]-loss; /* 內部能量更新 */
  if(iatr[n][2]<=0) remove_life(n);
  else
  {
  /* 個體屬性更新 */
  iatr[n][0]=x2;iatr[n][1]=y2; /* x,y坐標更新 */
  /* 顯示更新 */
  sp=gene[n][0]+1;
  g_disp_unit(x1,y1,0); /* 當前位置(x,y)圖形消除 */
  world[x1][y1]=0;
  g_disp_unit(x2,y2,sp); /* 新位置圖形表示 */
  world[x2][y2]=sp;
  }
  }
  void move_randomly(n) /* 個體n按照移動模式隨機移動 */
  int n;
  {
  /* 基本移動模式1 */
  int pat1[8][2]={{1,0},{1,1},{0,1},{-1,1},
  {-1,0},{-1,-1},{0,-1},{1,-1}};
  /* 基本移動模式2與3 */
  int pat2_3[2][4][2]={{{1,0},{0,1},{-1,0},{0,-1}},
  {{1,1},{-1,1},{-1,-1},{1,-1}}};
  int pat,x1,y1,x2,y2,rndnum;
  pat=decode_gene(n,7,2);
  /* pat(0,1,2,3): 表示基本移動模式 */
  x1=iatr[n][0]; /* 當前x坐標 */
  y1=iatr[n][1]; /* 當前y坐標 */
  if(pat<=1) /* 基本移動模式1 */
  {
  rndnum=random(8);
  x2=x1+pat1[rndnum][0]; /* 移動目的點x坐標 */
  y2=y1+pat1[rndnum][1]; /* 移動目的點y坐標 */
  }
  else /* 基本移動模式2與3 */
  {
  rndnum=random(4);
  x2=x1+pat2_3[pat-2][rndnum][0];
  y2=y1+pat2_3[pat-2][rndnum][1];
  }
  if(x2>=0 && x2<wx && y2>=0 && y2<wy)
  if(get_world(x2,y2)==0)
  move_pos(n,x1,y1,x2,y2);
  /* 非法目的點的場合不作移動 */
  }
  void move_individual(n) /* 個體n移動 */
  int n;
  {
  int cx,cy,dx,dy,sp,vf,sumx,sumy;
  int i,j,a,sgn[3],num;
  double vect[8][2]={{1,0},{1,1},{0,1},{-1,1},
  {-1,0},{-1,-1},{0,-1},{1,-1}};
  double vx,vy,d1,d2;
  double _cos,cos_max;
  cx=iatr[n][0]; /* 當前x坐標 */
  cy=iatr[n][1]; /* 當前y坐標 */
  sp=decode_gene(n,0,1)+1; /* 生物種1和2 */
  for(i=0;i<3;i++) /* 移動特點CM */
  {
  sgn [ i]=decode_gene(n,9+i,1);
  if(sgn [ i]==0) sgn [ i]=-1;
  }
  sumx=0;sumy=0;num=0;
  vf=decode_gene(n,5,2)+1; /* 視野 */
  for(i=-vf;i<=vf;i++)
  for(j=-vf;j<=vf;j++)
  {
  if(i!=0||j!=0)
  {
  a=get_world(cx+j,cy+i);
  if(a==1||a==2) /* 生物 1和2 */
  { num++;
  if(a==sp) /* 同種生物 */
  {
  sumx=sumx+sgn[0]*j;
  sumy=sumy+sgn[0]*i;
  }
  else /* 異種生物 */
  {
  sumx=sumx+sgn[1]*j;
  sumy=sumy+sgn[1]*i;
  }
  } else
  if(a==3||a==5) /* 食物 */
  {
  num++;
  sumx=sumx+sgn[2]*j;
  sumy=sumy+sgn[2]*i;
  }
  }
  }
  if(num!=0) /* 視野內有其他生物和食物時 */
  {
  vx=(double)sumx/(double)num;
  vy=(double)sumy/(double)num;
  if(vx!=0||vy!=0)
  {
  cos_max=-1.0;
  j=0;
  for(i=0;i<8;i++)
  {
  d1=sqrt(vx*vx+vy*vy);
  d2=sqrt(vect [ i][0]*vect [ i][0]+vect [ i][1]*vect [ i][1]);
  _cos=(vx*vect [ i][0]+vy*vect [ i][1])/d1/d2;
  if(_cos>cos_max)
  {
  cos_max=_cos;j=i;
  }
  }
  dx=cx+(int)vect[j][0];
  dy=cy+(int)vect[j][1];
  if(dx>=0 && dx<wx && dy>=0 && dy<wy)
  if(world[dx][dy]==0)
  move_pos(n,cx,cy,dx,dy);
  }
  else move_randomly(n);
  }
  else move_randomly(n);
  /* 視野內有其他生物和食物時 */
  }
  void act1_attack(n) /* 個體 n攻擊行動范圍內的其他生物個體 */
  int n;
  {
  int sft[8][2]={{1,0},{1,1},{0,1},{-1,1},
  {-1,0},{-1,-1},{0,-1},{1,-1}};
  int x1,y1,x2,y2,n2;
  int found,rndnum;
  double attack1,attack2,sa1,sa2,da1,da2,rnd1,rnd2,La1,La2;
  x1=iatr[n][0];y1=iatr[n][1];
  /* 獲得攻擊對象的坐標(x2,y2) */
  found=0;
  while(found==0)
  {
  rndnum=random(8);
  x2=x1+sft[rndnum][0];
  y2=y1+sft[rndnum][1];
  if(get_world(x2,y2)==1||get_world(x2,y2)==2)
  found=1;
  }
  /* 檢查攻擊對象個體號n2 */
  found=0;n2=0;
  while(found==0)
  {
  if(iatr[n2][0]==x2 && iatr[n2][1]==y2 && iflg[n2]==1)
  found=1; else n2++;
  }
  /* 計算雙方的 Attack量 */
  sa1=(double)decode_gene(n,19,3);
  da1=(double)decode_gene(n,22,3);
  sa2=(double)decode_gene(n2,19,3);
  da2=(double)decode_gene(n2,22,3);
  rnd1=(double)random(1001)/1000.0;
  rnd2=(double)random(1001)/1000.0;
  attack1=(double)iatr[n][2]+sa1*20.0/7.0*rnd1+da1*20.0/7.0*rnd2;
  rnd1=(double)random(1001)/1000.0;
  rnd2=(double)random(1001)/1000.0;
  attack2=(double)iatr[n2][2]+sa2*20.0/7.0*rnd1+da2*20.0/7.0*rnd2;
  /* 減少內部能量 */
  La1=decode_gene(n,25,3);
  La2=decode_gene(n2,25,3);
  rnd1=(double)random(1001)/1000.0;
  iatr[n][2]=iatr[n][2]-(int)((double)La1*rnd1);
  rnd2=(double)random(1001)/1000.0;
  iatr[n2][2]=iatr[n2][2]-(int)((double)La2*rnd2);
  if(attack1>=attack2) /* 勝者: n 敗者:n2 */
  iatr[n2][2]=iatr[n2][2]-40;
  else /* 勝者: n2 敗者:n */
  iatr[n][2]=iatr[n][2]-40;
  if(iatr[n][2]<=0) remove_life(n);
  if(iatr[n2][2]<=0) remove_life(n2);
  }
  void act2_eat(n) /* 個體n獲取行動范圍內的食物 */
  int n;
  {
  int sft[8][2]={{1,0},{1,1},{0,1},{-1,1},
  {-1,0},{-1,-1},{0,-1},{1,-1}};
  int x1,y1,x2,y2,n2,ef;
  int found,rndnum;
  x1=iatr[n][0];y1=iatr[n][1];
  /* 獲取食物位置(x2,y2) */
  found=0;
  while(found==0)
  {
  rndnum=random(8);
  x2=x1+sft[rndnum][0];
  y2=y1+sft[rndnum][1];
  if(get_world(x2,y2)==3||get_world(x2,y2)==5)
  found=1;
  }
  /* 增加內部能量 */
  ef=decode_gene(n,28,4); /* 食物吸取效率 */
  iatr[n][2]=iatr[n][2]+(int)(40.0*(50.0+(double)ef*50.0/15.0)/100.0);
  if(iatr[n][2]>100) iatr[n][2]=100;
  /* 檢查食物號n2 */
  found=0;n2=0;
  while(found==0)
  {
  if(fatr[n2][0]==x2 && fatr[n2][1]==y2 && fflg[n2]==1)
  found=1; else n2++;
  }
  remove_food(n2);
  }
  void act3_makechild(n) /* 個體n與行動范圍內的其他生物個體交配產生子個體 */
  int n;
  {
  int i,j,k,x,y,x2,y2,found,n2,trial;
  int x3,y3;
  double rnd;
  if(pop_size+1<=MAX_POP)
  {
  x=iatr[n][0];y=iatr[n][1];
  found=0;
  while(found==0)
  {
  x2=x+random(3)-1;
  y2=y+random(3)-1;
  if(x2!=x||y2!=y)
  if(get_world(x2,y2)==gene[n][0]+1);
  found=1;
  }
  /* 檢查交配對象個體號n2 */
  found=0; n2=0;
  while(found==0)
  {
  if((iatr[n2][0]==x2 || iatr[n2][1]==y2) && iflg[n2]==1)
  found=1; else n2++;
  if(n2>=pop_size-1) return;
  }
  /* 確定產生個體位置 */
  found=0;trial=0;
  while(found==0 && trial<50)
  {
  i=random(3)-1;j=random(3)-1;
  k=random(2);
  if(k==0) { x3=x+i;y3=y+j;}
  else { x3=x2+i;y3=y2+j;}
  if(get_world(x3,y3)==0) found=1;
  trial++;
  }
  if(found==1)
  {
  /* 個體 n與個體 n2產生子個體 */
  pop_size++;
  /* 均勻交叉 */
  uni_crossover(gene,n,n2,pop_size-1,0.5,G_LENGTH);
  /* 變異 */
  for(i=1;i<G_LENGTH;i++)
  {
  rnd=random(10001)/10000.0;
  if(rnd<=MUTATION)
  if(gene[pop_size-1] [ i]==1)
  gene[pop_size-1] [ i]=0;
  else gene[pop_size-1] [ i]=1;
  }
  /* 交配后父個體能量減少 */
  iatr[n][2]=iatr[n][2]-45;
  if(iatr[n][2]<=0) remove_life(n);
  iatr[n2][2]=iatr[n2][2]-45;
  if(iatr[n2][2]<=0) remove_life(n2);
  /* 子個體屬性輸入 */
  iatr[pop_size-1][0]=x3;
  iatr[pop_size-1][1]=y3;
  iatr[pop_size-1][2]=100;
  iatr[pop_size-1][3]=0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频1区2区| 成熟亚洲日本毛茸茸凸凹| 亚洲欧美一区二区三区久本道91| 国产亚洲欧美日韩俺去了| 欧美成人猛片aaaaaaa| 日韩欧美在线网站| 欧美va亚洲va在线观看蝴蝶网| 欧美一区二区视频免费观看| 91精品国产欧美一区二区| 欧美一级免费观看| 欧美mv日韩mv亚洲| 久久香蕉国产线看观看99| 久久久久久亚洲综合| 亚洲国产成人午夜在线一区| 亚洲色图欧美激情| 夜夜精品浪潮av一区二区三区| 午夜精品视频一区| 麻豆精品一区二区| 高清成人在线观看| 91亚洲精品一区二区乱码| 色吧成人激情小说| 欧美精品自拍偷拍| 精品久久久久久亚洲综合网| 日本一区二区三区四区| 国产精品美女久久久久久| 一二三区精品视频| 奇米一区二区三区| 国产成人综合精品三级| 99精品黄色片免费大全| 精品视频在线免费| 精品成人a区在线观看| 国产精品免费久久久久| 一区二区久久久久| 麻豆视频观看网址久久| 成人福利视频网站| 欧美日韩国产高清一区| 久久久蜜臀国产一区二区| 国产精品卡一卡二卡三| 亚洲电影视频在线| 国产成人免费在线视频| 色噜噜久久综合| 日韩欧美国产三级| 国产精品电影一区二区| 日韩和的一区二区| 成人在线视频一区二区| 欧美日韩一区二区三区在线看| 久久久精品免费免费| 亚洲一区视频在线| 国产成人免费视频一区| 欧美日韩国产一级二级| 国产日韩av一区二区| 亚洲女人小视频在线观看| 久久国产精品免费| 日本韩国一区二区三区视频| 欧美成人bangbros| 一区二区三区中文字幕精品精品 | 美国毛片一区二区| 91蜜桃网址入口| 精品国产乱子伦一区| 亚洲精品视频一区| 国产一区二区剧情av在线| 欧美三级电影一区| 国产精品国产三级国产| 紧缚奴在线一区二区三区| 欧美视频在线一区| 亚洲三级理论片| 国产一区二区三区不卡在线观看 | 国产精品国产a级| 免费观看在线色综合| 色爱区综合激月婷婷| 国产欧美日韩三级| 精品一区二区三区在线播放| 欧美性感一类影片在线播放| 国产精品动漫网站| 国产精品一区二区久久精品爱涩| 欧美一区二区大片| 亚洲1区2区3区视频| 在线观看日韩一区| 亚洲乱码精品一二三四区日韩在线| 大尺度一区二区| 精品国产伦一区二区三区观看体验 | 欧美一级一级性生活免费录像| 亚洲婷婷综合久久一本伊一区| 国产成+人+日韩+欧美+亚洲| 日韩欧美国产综合一区| 人人精品人人爱| 在线观看91av| 亚洲成年人影院| 欧美亚洲禁片免费| 一级女性全黄久久生活片免费| 99精品热视频| 亚洲色图欧美偷拍| 99久久国产综合精品麻豆| 中文字幕制服丝袜一区二区三区| 国产乱码字幕精品高清av| 日韩精品最新网址| 欧美96一区二区免费视频| 欧美精品成人一区二区三区四区| 亚洲线精品一区二区三区| 色婷婷久久久久swag精品| 日韩一区在线看| 成人中文字幕在线| 国产精品高潮呻吟| 91碰在线视频| 亚洲视频一区在线| 日本高清不卡aⅴ免费网站| 亚洲免费在线观看视频| 欧美影院午夜播放| 亚洲国产精品久久不卡毛片| 欧美日产国产精品| 奇米精品一区二区三区在线观看一| 日韩限制级电影在线观看| 美女mm1313爽爽久久久蜜臀| 亚洲精品一区二区三区蜜桃下载| 国产综合色产在线精品| 国产欧美一区视频| 暴力调教一区二区三区| 中文字幕一区二区三区四区 | 日韩欧美国产精品一区| 国产自产视频一区二区三区| 中文字幕乱码亚洲精品一区| 色呦呦一区二区三区| 亚洲国产精品久久人人爱蜜臀| 欧美一级黄色录像| 国产美女精品在线| 成人欧美一区二区三区| 欧美色大人视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久精品亚洲精品国产欧美kt∨ | 国产片一区二区| 99精品欧美一区二区蜜桃免费 | 99re在线视频这里只有精品| 亚洲精品日产精品乱码不卡| 欧美精品日韩一本| 国产精品一区免费视频| 亚洲三级在线播放| 欧美一卡2卡3卡4卡| 国产成人在线视频网址| 亚洲女爱视频在线| 欧美一级欧美三级| 成人精品电影在线观看| 亚洲成人激情社区| 久久久九九九九| 在线观看视频一区二区欧美日韩| 久久精品国产成人一区二区三区| 国产精品嫩草久久久久| 欧美日韩高清在线| 成人免费看片app下载| 亚洲一区二区在线免费看| 久久久青草青青国产亚洲免观| 91精品办公室少妇高潮对白| 美女高潮久久久| 一区二区三区中文字幕在线观看| 精品国产乱子伦一区| 在线看一区二区| 国产黄色成人av| 午夜av一区二区| 欧美国产一区二区| 337p亚洲精品色噜噜狠狠| 成人av在线播放网站| 免费在线观看一区二区三区| 亚洲人被黑人高潮完整版| 欧美电视剧免费全集观看| 色就色 综合激情| 国产成人免费在线| 美女在线视频一区| 亚洲一卡二卡三卡四卡无卡久久| 国产偷国产偷亚洲高清人白洁| 欧美高清视频在线高清观看mv色露露十八 | 日韩毛片精品高清免费| 欧美大片一区二区| 欧美影视一区二区三区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 久久久久久黄色| 欧美日韩综合不卡| 91亚洲国产成人精品一区二区三| 精品亚洲免费视频| 婷婷久久综合九色国产成人| 中文字幕一区二区在线观看 | 免费三级欧美电影| 亚洲国产欧美日韩另类综合| 综合婷婷亚洲小说| 国产欧美精品一区二区色综合朱莉| 欧美一区二区三区四区五区| 欧美在线观看视频一区二区| aaa欧美日韩| 国产成人三级在线观看| 国产一区二区在线影院| 免费成人在线网站| 日本91福利区| 奇米影视在线99精品| 视频在线观看一区| 香蕉久久夜色精品国产使用方法| 亚洲黄色小说网站| 亚洲精品福利视频网站| 一区二区三区日韩在线观看| 亚洲老司机在线| 亚洲三级小视频| 伊人色综合久久天天| 亚洲综合色婷婷|