91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

用c語言實現的簡單的遺傳算法,可以將一個輸入的函數在定義域范圍內自動求出他的最值。

資源截圖

代碼片段和文件信息

#include
#include
#include
#include

const?int?NUMBEROFX=6;
int?firstG[NUMBEROFX]={0};?//自變量
int?firstValue[NUMBEROFX]={0};?//函數值數組
int?Bin[NUMBEROFX][5]={0};//自變量的二進制碼

//


int?max=0;??//最大值對應自變量
int?maxValue=0;?//最大值
int?binMax[5]={0};?//最大值對應自變量的二進制碼
int?Change=0;??//變異的位數

int?function(int?x)
{
return(x*x*x-60*x*x+900*x+100);
}

void?choose()
{
int?temp=0;
int?i=0j=0;
double?percent[NUMBEROFX]={0.0};??//選擇概率
double?qpercent[NUMBEROFX]={0.0};?//賭輪法積累概率
double?tempPercent=0.0;
int?numberOfEachX[NUMBEROFX]={0};?//賭輪法選出的每個自變量對應的次數
int?totalValue=0;//函數值數組之和
int?copyOfFirstG[NUMBEROFX]={0};?//自變量集合的拷貝


//6個函數值之和
for(i=0;i {
totalValue+=firstValue[i];
}
//每個函數值概率
for(i=0;i {
percent[i]=(double)firstValue[i]/totalValue;
//積累概率
for(j=0;j<=i;j++)
{
qpercent[i]+=percent[j];
}
}
//生成6個隨機數
for(i=0;i {
tempPercent=(double)(rand()%10000)/10000;
if(tempPercent<=qpercent[0])?numberOfEachX[0]+=1;
else?if(tempPercent<=qpercent[1])?numberOfEachX[1]+=1;
else?if(tempPercent<=qpercent[2])?numberOfEachX[2]+=1;
else?if(tempPercent<=qpercent[3])?numberOfEachX[3]+=1;
else?if(tempPercent<=qpercent[4])?numberOfEachX[4]+=1;
else?if(tempPercent<=qpercent[5])?numberOfEachX[5]+=1;
}

//復制新的種群到firstG中
temp=0;
//將原自變量集合拷貝到新的集合
for(i=0;i {
copyOfFirstG[i]=firstG[i];
}
//根據每個原自變量出現的次數重新賦值firstG
for(j=0;j {
for(i=temp;i {
firstG[i]=copyOfFirstG[j];
}
temp+=numberOfEachX[j];
}
}

void?inttobin()
{
int?i=0j=0;
int?tempBin[5]={0};//自變量二進制碼臨時變量

for(i=0;i {
for(j=0;j<5;j++)
{
tempBin[j]=0;
}
j=0;
while(firstG[i]>=2)
{
tempBin[j++]=firstG[i]%2;
firstG[i]=firstG[i]/2;
}
if(firstG[i])?tempBin[j]=1;
for(j=0;j<5;j++)
{
Bin[i][j]=tempBin[4-j];
}
}???
/*
for(j=0;j<5;j++)
{ ?
tempBin[j]=0;
}
j=0;
while(max>=2)
{
tempBin[j++]=max%2;
max=max/2;
}
if(max)?tempBin[j]=1;
for(j=0;j<5;j++)
{
binMax[j]=tempBin[4-j];
}
*/
}????

void?reverse()
{??
int?temp=0ijk;
int?Reverse=0;?//交叉的位數
int?groupInfo[NUMBEROFX];?//兩兩分組,每個元素的值為與該元素配對的那個,初始都為7,表示未配對
int?newBin[NUMBEROFX][5]={0};?//交叉后新的自變量二進制

for(i=0;i {
groupInfo[i]=NUMBEROFX+1;
}
for(i=0k=0;i {
if(groupInfo[i]==NUMBEROFX+1)??//若該元素已經配對,則跳過該元素,若該元素未配對,則配對并進行交叉
{
while(true)??//生成隨機數
{

temp=rand()%NUMBEROFX;
if(temp!=i&&groupInfo[temp]==NUMBEROFX+1)??//該隨機數不等于當前要配對的數,且該隨機數未配對則配對并跳出循環;
//否則重新生成隨機數
{
groupInfo[i]=temp;?
groupInfo[temp]=i;
break;
}
}

//確定交叉的位數
Reverse=rand()%5;
//概率為0.9
if(rand()%10<=8)
{
for(j=0;j<=Reverse;j++)
{
newBin[2*k][j]=Bin[i][j];
}
for(j=4;j>Rev

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-11-13?23:34??Genetic\
?????目錄???????????0??2012-11-13?22:59??Genetic\Debug\
?????文件???????33792??2012-11-13?23:33??Genetic\Debug\Genetic.exe
?????文件??????347500??2012-11-13?23:33??Genetic\Debug\Genetic.ilk
?????文件??????437248??2012-11-13?23:33??Genetic\Debug\Genetic.pdb
?????目錄???????????0??2012-11-05?18:41??Genetic\Genetic\
?????文件?????2314240??2012-11-13?23:34??Genetic\Genetic.sdf
?????文件?????????888??2012-09-27?21:27??Genetic\Genetic.sln
?????文件???????12800??2012-11-13?23:34??Genetic\Genetic.suo
?????目錄???????????0??2012-11-13?23:33??Genetic\Genetic\Debug\
?????文件?????????622??2012-11-13?23:33??Genetic\Genetic\Debug\cl.command.1.tlog
?????文件????????1974??2012-11-13?23:33??Genetic\Genetic\Debug\CL.read.1.tlog
?????文件?????????288??2012-11-13?23:33??Genetic\Genetic\Debug\CL.write.1.tlog
?????文件????????1575??2012-11-01?23:00??Genetic\Genetic\Debug\Genetic.Build.CppClean.log
?????文件?????????406??2012-11-01?23:00??Genetic\Genetic\Debug\Genetic.exe.embed.manifest
?????文件?????????472??2012-11-01?23:00??Genetic\Genetic\Debug\Genetic.exe.embed.manifest.res
?????文件?????????381??2012-11-13?23:33??Genetic\Genetic\Debug\Genetic.exe.intermediate.manifest
?????文件??????????50??2012-11-13?23:33??Genetic\Genetic\Debug\Genetic.lastbuildstate
?????文件????????2046??2012-11-13?23:33??Genetic\Genetic\Debug\Genetic.log
?????文件???????21657??2012-11-13?23:33??Genetic\Genetic\Debug\Genetic.obj
?????文件?????????204??2012-11-01?23:00??Genetic\Genetic\Debug\Genetic_manifest.rc
?????文件???????????2??2012-11-13?23:33??Genetic\Genetic\Debug\link-cvtres.read.1.tlog
?????文件???????????2??2012-11-13?23:33??Genetic\Genetic\Debug\link-cvtres.write.1.tlog
?????文件???????????2??2012-11-13?23:33??Genetic\Genetic\Debug\link.3120-cvtres.read.1.tlog
?????文件???????????2??2012-11-13?23:33??Genetic\Genetic\Debug\link.3120-cvtres.write.1.tlog
?????文件???????????2??2012-11-13?23:33??Genetic\Genetic\Debug\link.3120.read.1.tlog
?????文件???????????2??2012-11-13?23:33??Genetic\Genetic\Debug\link.3120.write.1.tlog
?????文件???????????2??2012-11-13?23:33??Genetic\Genetic\Debug\link.7512-cvtres.read.1.tlog
?????文件???????????2??2012-11-13?23:33??Genetic\Genetic\Debug\link.7512-cvtres.write.1.tlog
?????文件???????????2??2012-11-13?23:33??Genetic\Genetic\Debug\link.7512.read.1.tlog
?????文件???????????2??2012-11-13?23:33??Genetic\Genetic\Debug\link.7512.write.1.tlog
............此處省略20個文件信息

評論

共有 條評論