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

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

?? dmfunc.c

?? < c程序員成長攻略>>源代碼,一本很好的書,原書全部的代碼都有講解,是c程序員的福星
?? C
字號:
/*---------------------------DMFunc.c-----------------------------------*/
/*-----------算法相關函數----------*/
/*-----------求和--------------*/
float Sigama(float a[],int L)
{  
  /*------求得數組a[]中從下標0到L-1的元素之和。函數返回該和值-----*/
   int i;
   float temp=0;
   for(i=0;i<L;i++)
     temp+=a[i];
   return temp;
}

/*-----------求最大值--------*/
float findMax(float a[],int L)
{ 
  /*求得數組a[]中從下標0到L-1各元素的最大值。函數返回該最大值*/
  int i;
  float temp;
  for(i=0;i<L-1;i++) /*冒泡排序一輪將各元素的最大值交換到a[L-1]中*/
    if(a[i]>a[i+1])
       {  temp=a[i];
	      a[i]=a[i+1];
	      a[i+1]=temp;
       }
  return a[L-1];    /*----返回最大值----*/
}

/*------------求最小值--------*/
float findMin(float a[],int L)
{ 
  int i;
  float temp;
  for(i=0;i<L-1;i++) /*--冒泡排序一輪將各元素的最大值交換到a[L-1]中---*/
    if(a[i]<a[i+1])
       {  
          temp=a[i];
	      a[i]=a[i+1];
	      a[i+1]=temp;
       }
  return a[L-1];
}

/*--------------對各個方案的貼近度和距離進行排序------------------*/
void Taxis(struct Target Tank[],int pNum)
{ /*----在定義的結構struct Target中定義了指示當前方案的貼近度和距離在各個方案中按大小排序所得到的序號TIndex和dIndex。此函數將各方案的TIndex和dIndex分別進行排序,得到其相應的排序號----*/
  int i,j;
  for(i=0;i<pNum;i++)
/*從第一個開始,將第i個和第i+1個進行比較,若i的距離(或貼近度)大,*/
   for(j=i+1;j<pNum;j++)
/* 則i的距離序號(或貼近度序號)加1,否則,i+1的距離序號-*/
   {                        /*-(或貼近度序號)加1-------------*/
    if(Tank[i].d>Tank[j].d)
      Tank[i].dIndex++;
    else 
      Tank[j].dIndex++;
    if(Tank[i].T>Tank[j].T)
      Tank[i].TIndex++;
    else 
      Tank[j].TIndex++;
   }
}

/*-----------獲得當前各輛坦克的指標數據---------------------*/
void GetTData()
{
  int i,d=40;
  float x,y;
  for(i=0;i<n;i++)
  {
     x=Tank[i].x;
     y=Tank[i].y;
     Tank[i].distance=sqrt((x-emp.x)*(x-emp.y)+(y-emp.y)*(y-emp.y));
     Tank[i].distance=1-Tank[i].distance/1000;  /*求得距離的指標*/
     switch(Tank[i].color)         /*根據目標顏色確定其攻擊力值*/
     {
	 case WHITE:
	      Tank[i].power=0.5;
	      break;
	 case YELLOW:
	      Tank[i].power=0.6;
	      break;
	 case RED:
	      Tank[i].power=0.7;
	      break;
     }
     switch(Tank[i].direction)    /*根據目標當前方向值來定量*/
     {
	 case 1:  /*方向為右時*/  
	     if(Tank[i].x<emp.x-emp.width && Tank[i].y>emp.y-emp.lenth)
/*如果目標位于大本營水平左側*/
		Tank[i].inva=0.9; 
             else
	     if(Tank[i].x>emp.x+emp.width && Tank[i].y>emp.y-emp.lenth)
/*如果目標位于大本營水平右側*/
                Tank[i].inva=0.7;
             else
if(Tank[i].y<emp.y-emp.lenth && Tank[i].y>emp.y-emp.lenth-4*Tank[i].r)
/*如果目標位于大本營上沿寬度為二倍坦克直徑的水平區域帶*/
                Tank[i].inva=0.7;
	     else
                Tank[i].inva=0.5; /*目標位于其他區域*/
             break;
	 case -1: /*方向為左時*/
	     if(Tank[i].x>emp.x+emp.width && Tank[i].y>emp.y-emp.lenth)
/*如果目標位于大本營水平右側*/
		Tank[i].inva=0.9;
             else
	     if(Tank[i].x<emp.x-emp.width && Tank[i].y>emp.y-emp.lenth)
/*如果目標位于大本營水平左側*/
                Tank[i].inva=0.7;
             else 
      if(Tank[i].y<emp.y-emp.lenth && Tank[i].y>emp.y-emp.lenth-4*Tank[i].r)
/*如果目標位于大本營上沿寬度為二倍坦克直徑的水平區域帶*/ 
                Tank[i].inva=0.7;
	     else
		Tank[i].inva=0.5; /*目標位于其他區域*/
	     break;
	 case 2:  /*方向為下時*/
	     if(Tank[i].x<emp.x-emp.width && Tank[i].x>emp.x+emp.width)
/*如果目標位于大本營正上方*/
		Tank[i].inva=0.9;
	     else 
		Tank[i].inva=0.6; /*目標位于其他區域*/
	     break;
	 case -2: /*方向為上時*/
	     if(Tank[i].x<emp.x-emp.width && Tank[i].x>emp.x+emp.width)
/*如果目標位于大本營正上方*/
		Tank[i].inva=0.7; 
	     else
		Tank[i].inva=0.1; /*目標位于其他區域*/
	     break;
	 case 3:  /*方向為右下時*/
      if(Tank[i].x<emp.x-emp.width && Tank[i].y>emp.y-emp.lenth-4*Tank[i].r)
/*如果目標位于從距大本營上沿為二倍坦克直徑處到演示框低部的左側水平帶*/
	        Tank[i].inva=0.8;
             else 
	  if(Tank[i].x>emp.x+emp.width && Tank[i].y>emp.y-emp.lenth-4*Tank[i].r)
/*如果目標位于從距大本營上沿為二倍坦克直徑處到演示框低部的右側水平帶*/
                Tank[i].inva=0.6;
             else
		Tank[i].inva=0.4; /*目標位于其他區域*/
	     break;
	 case -3: /*方向為左上時*/
      if(Tank[i].x>emp.x+emp.width && Tank[i].y>emp.y-emp.lenth-4*Tank[i].r) 
/*如果目標位于從距大本營上沿為二倍坦克直徑處到演示框低部的右側水平帶*/
	        Tank[i].inva=0.8;
             else
	 if(Tank[i].x<emp.x-emp.width && Tank[i].y>emp.y-emp.lenth-4*Tank[i].r)
/*如果目標位于從距大本營上沿為二倍坦克直徑處到演示框低部的左側水平帶*/
                Tank[i].inva=0.6;
             else
		Tank[i].inva=0.1; /*目標位于其他區域*/
	     break;
	 case 4:  /*方向為右上時*/
	  if(Tank[i].x<emp.x-emp.width && Tank[i].y>emp.y-emp.lenth-4*Tank[i].r)
/*如果目標位于從距大本營上沿為二倍坦克直徑處到演示框低部的左側水平帶*/
	        Tank[i].inva=0.8;
             else 
	  if(Tank[i].x>emp.x+emp.width && Tank[i].y>emp.y-emp.lenth-4*Tank[i].r)
/*如果目標位于從距大本營上沿為二倍坦克直徑處到演示框低部的右側水平帶*/
                Tank[i].inva=0.6;
             else
		Tank[i].inva=0.1; /*目標位于其他區域*/
	     break;
	 case -4: /*方向為左下時*/
	  if(Tank[i].x>emp.x+emp.width && Tank[i].y>emp.y-emp.lenth-4*Tank[i].r) 
/*如果目標位于從距大本營上沿為二倍坦克直徑處到演示框低部的右側水平帶*/
	        Tank[i].inva=0.8;
             else
	 if(Tank[i].x<emp.x-emp.width && Tank[i].y>emp.y-emp.lenth-4*Tank[i].r)
/*如果目標位于從距大本營上沿為二倍坦克直徑處到演示框低部的左側水平帶*/
                Tank[i].inva=0.6;
             else
		Tank[i].inva=0.4; /*目標位于其他區域*/
	     break;
     }
  }
}

/*-----------第一步:構造初始指標判斷矩陣----------------------------*/
void FormMatrix()
{ int i,j;
  float temp[mMax][nMax]={{0.3,0.9,0.5,0.9},
			  {0.1,0.8,0.4,0.7},
			  {0.5,0.9,0.6,0.3}};
  GetTData();
  for(j=0;j<n;j++)
  {
   r[0][j]=Tank[j].distance;
   r[1][j]=Tank[j].inva;
   r[2][j]=Tank[j].power;
  }
  /*for(i=0;i<m;i++)
  {  
     for(j=0;j<n;j++)
       cprintf("%8.4f",r[i][j]);
     cprintf("\n");
   }*/
}

/*-----------第二步:構造加熵權的標準化指標矩陣A---------------------*/
void FormEntropyMatrix()
{  
   int i,j;
   float temp=0,k;
   k=1/log(n);
  for(i=0;i<m;i++)
  {
    for(j=0;j<n;j++)
   { 
     if(Sigama(&r[i][0],n)==0)
     f[i][j]=0;
     f[i][j]=r[i][j]/Sigama(&r[i][0],n);
     temp+=f[i][j]*log(f[i][j]);
   }
    H[i]=0-k*temp;
    temp=0;
  }
  for(i=0;i<m;i++)
  Omiga[i]=(1-H[i])/(m-Sigama(&H[0],m));

  for(i=0;i<m;i++)
    for(j=0;j<n;j++)
      A[i][j]=Omiga[i]*r[i][j];

}

/*-----------第三步:找出理想點X[m]----------------*/
void FindPerfectPoint()
{ 
  float a[mMax][nMax];
  int i,j;
  for(i=0;i<m;i++)
    for(j=0;j<n;j++)
      a[i][j]=A[i][j];
  for(i=0;i<m;i++)
    X[i]=findMax(&a[i][0],n);
}

/*-----------第四步:計算被評方案到理想點的距離Tank[j].d-----------------*/
void CalDistance()
{ 
  int i,j;
  float sigama=0;
  for(j=0;j<n;j++)
  {  
     for(i=0;i<m;i++)
     sigama+=(A[i][j]-X[i])*(A[i][j]-X[i]);
     Tank[j].d=sqrt(sigama);
     sigama=0;
   }
}

/*-----------第五步:計算被評方案與理想點的貼近度Tank[j].T---------------*/
void CalCloseDegree()
{  
   int i,j;
   float sigama1=0,sigama2=0;
   for(j=0;j<n;j++)
    { 
      for(i=0;i<m;i++)
      { 
        sigama1+=A[i][j]*X[i];
	    sigama2+=X[i]*X[i];
       }
      Tank[j].T=1-sigama1/sigama2;
      sigama1=0;
      sigama2=0;
    }
}

/*-----------第六步:根據貼近度和距離排序,找出最優目標---------*/
void FindBestT()
{ 
  int i,j,best_flag,second_flag;
  struct Target temp;
  best=0;
  for(i=0;i<n;i++)
  { 
     Tank[i].dIndex=Tank[i].TIndex=1;
     Tank[i].pIndex=1;
  }
  Taxis(&Tank[0],n);/*--------將貼近度和距離排序----------------*/
  for(i=0;i<n;i++)  /*---按貼近度將各方案進行排序--------*/
  { 
     for(j=i+1;j<n;j++)
     { 
        if(Tank[i].TIndex>Tank[j].TIndex)
	    {    
           Tank[i].pIndex++;
	     }
	    else 
          if(Tank[i].TIndex==Tank[j].TIndex)
/*--若貼近度相同則比較距離------*/
	        if(Tank[i].dIndex>Tank[j].dIndex)
		    { 
               Tank[i].pIndex++;
		    }
	       else 
               Tank[j].pIndex++;
	else
       if(Tank[i].TIndex<Tank[j].TIndex)
	     Tank[j].pIndex++;
	}
   }

  for(i=0;i<n;i++)
  {
     if(Tank[i].pIndex==1)
	{
	   best=i;       /*--------找出最優方案,獲得其方案序號---------*/
	   best_flag=1;
	   break;
	}
  }
}

/*--------------------------------------------------------------*/
void Arithmetic()
{
    if(n==1)
    {
       best=0;
       return;
    }
    FormMatrix();
    FormEntropyMatrix();
    FindPerfectPoint();
    CalDistance();
    CalCloseDegree();
    FindBestT();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜久久久久久电影| 99视频精品全部免费在线| 粉嫩13p一区二区三区| 欧美日韩黄色影视| 亚洲人123区| 紧缚捆绑精品一区二区| 欧美日韩国产美| 国产精品国产成人国产三级| 精品一区二区日韩| 欧美日韩综合在线| 亚洲女同一区二区| 成人网男人的天堂| 久久亚洲捆绑美女| 免费人成在线不卡| 欧美精品1区2区3区| 亚洲卡通动漫在线| 99久久99久久精品免费看蜜桃| 欧美xxxxxxxxx| 免费一级欧美片在线观看| 99这里都是精品| 欧美电影精品一区二区| 免费在线一区观看| 91精品国产乱码| 三级一区在线视频先锋| 91精品国产品国语在线不卡| 五月激情综合网| 777奇米四色成人影色区| 亚洲电影你懂得| 69av一区二区三区| 日本欧美肥老太交大片| 91麻豆精品国产91久久久| 天天影视网天天综合色在线播放| 欧美日韩日日摸| 日韩va亚洲va欧美va久久| 666欧美在线视频| 日韩av电影免费观看高清完整版在线观看| 欧美吻胸吃奶大尺度电影| 亚洲图片欧美综合| 3atv一区二区三区| 激情欧美一区二区| 中国色在线观看另类| 99re视频这里只有精品| 又紧又大又爽精品一区二区| 欧美日韩免费电影| 久久99久国产精品黄毛片色诱| 精品欧美一区二区三区精品久久| 九九国产精品视频| 国产精品久久久久久亚洲毛片| 成人午夜私人影院| 一卡二卡三卡日韩欧美| 制服视频三区第一页精品| 久久99精品久久只有精品| 欧美激情中文字幕| 欧日韩精品视频| 美日韩一区二区三区| 国产欧美日本一区视频| 91蜜桃传媒精品久久久一区二区| 亚洲一区在线看| 精品国产一区二区三区四区四| 成人99免费视频| 天堂久久一区二区三区| 久久久精品2019中文字幕之3| 一本久道久久综合中文字幕| 日韩av一区二区在线影视| 国产色一区二区| 欧美女孩性生活视频| 国产aⅴ综合色| 香蕉成人啪国产精品视频综合网| 久久久九九九九| 欧美伦理视频网站| 国产宾馆实践打屁股91| 午夜精品免费在线| 国产精品色在线观看| 日韩一区二区中文字幕| 91免费视频网址| 精品在线一区二区三区| 洋洋av久久久久久久一区| 久久这里只有精品6| 欧美性猛片aaaaaaa做受| 国产精品99久久久久久久vr| 亚洲高清视频的网址| 国产精品午夜久久| 精品国产欧美一区二区| 欧美最猛黑人xxxxx猛交| 成人中文字幕合集| 九一久久久久久| 视频在线观看一区二区三区| 亚洲私人黄色宅男| 国产女主播一区| 精品奇米国产一区二区三区| 欧美乱妇一区二区三区不卡视频| 91小视频免费看| 国产黑丝在线一区二区三区| 蜜桃在线一区二区三区| 日韩专区欧美专区| 亚洲一区二区三区四区五区黄| 国产精品久久看| 久久久久久久久久久久久女国产乱 | 久久嫩草精品久久久精品一| 欧美日韩成人一区| 在线观看日韩电影| 99国产精品久久久久久久久久久| 国产在线一区观看| 国产一区二区美女| 久久精品国产77777蜜臀| 图片区日韩欧美亚洲| 亚洲国产精品一区二区尤物区| 亚洲丝袜制服诱惑| 亚洲欧美激情一区二区| 亚洲国产精品99久久久久久久久 | 欧美日韩激情在线| 欧美吻胸吃奶大尺度电影| 欧美亚洲综合另类| 欧美亚洲丝袜传媒另类| 在线影院国内精品| 色哟哟一区二区三区| 色婷婷综合久色| 欧美三级三级三级| 7777精品伊人久久久大香线蕉完整版 | 欧美性猛交xxxxxx富婆| 欧美在线不卡视频| 欧美日韩电影一区| 日韩手机在线导航| 久久久精品免费观看| 国产精品剧情在线亚洲| 亚洲美女视频一区| 亚洲影视资源网| 日韩av电影一区| 国产精品99久久久久| 91在线一区二区三区| 欧美日韩综合色| 日韩精品一区国产麻豆| 国产日韩欧美精品一区| 17c精品麻豆一区二区免费| 亚洲自拍偷拍欧美| 麻豆精品在线看| 国产99久久久久| 在线观看av一区二区| 91精品国产美女浴室洗澡无遮挡| 久久久久久久久久美女| 亚洲欧美一区二区三区久本道91| 性做久久久久久久久| 狠狠色综合日日| 91片在线免费观看| 欧美一区二区日韩| 国产精品免费观看视频| 亚洲自拍欧美精品| 国产美女精品一区二区三区| 91蝌蚪porny| 欧美tk—视频vk| 成人欧美一区二区三区黑人麻豆 | 亚洲国产高清在线| 亚洲综合免费观看高清完整版| 久久国产尿小便嘘嘘尿| 99re这里都是精品| 精品国产一区二区在线观看| 亚洲日本乱码在线观看| 加勒比av一区二区| 欧美视频在线播放| 中文字幕不卡在线播放| 另类综合日韩欧美亚洲| 97精品国产露脸对白| 日韩精品一区二区三区swag| 亚洲欧美成aⅴ人在线观看| 国内精品不卡在线| 91麻豆精品91久久久久同性| 国产精品国产三级国产专播品爱网| 日本不卡视频在线| 色婷婷av一区二区三区gif| 久久免费美女视频| 日韩综合小视频| 91免费视频大全| 国产三级一区二区| 久久成人免费日本黄色| 在线不卡免费欧美| 亚洲福利一二三区| 91女人视频在线观看| 欧美国产精品中文字幕| 精品一区二区三区不卡| 日韩欧美专区在线| 日韩成人午夜精品| 欧美午夜精品久久久久久超碰| 亚洲欧美国产三级| 91蜜桃在线观看| 中文字幕在线一区| 丁香六月综合激情| 国产肉丝袜一区二区| 国产自产v一区二区三区c| 日韩精品最新网址| 另类小说综合欧美亚洲| 7777精品伊人久久久大香线蕉超级流畅 | 日韩亚洲电影在线| 婷婷一区二区三区| 欧美日韩国产欧美日美国产精品| 亚洲国产成人精品视频| 在线观看成人小视频| 亚洲成a人片在线观看中文| 欧美色男人天堂| 亚洲国产乱码最新视频| 精品视频一区 二区 三区|