[ 来源:http://www.it55.com | 作者: | 时间:2008-01-11 | 收藏 | 推荐 ] 【大 中 小】
/// </summary>
public void Evolve()
{
int[] fitTemperature = new int[kMaxFlowers];
int[] fitWater = new int[kMaxFlowers];
int[] fitSunlight = new int[kMaxFlowers];
int[] fitNutrient = new int[kMaxFlowers];
int[] fitBeneficialInsect = new int[kMaxFlowers];
int[] fitHarmfulInsect = new int[kMaxFlowers];
int[] fitness = new int[kMaxFlowers];
int i;
int leastFit = 0;
int leastFitIndex = 1;
for (i = 1; i < kMaxFlowers; i++)
if (Fitness(i) > leastFit)
{
leastFit = Fitness(i);
leastFitIndex = i;
}
temperature[leastFitIndex] = temperature[Rnd.Next(1, 10)];
water[leastFitIndex] = water[Rnd.Next(1, 10)];
sunlight[leastFitIndex] = sunlight[Rnd.Next(1, 10)];
nutrient[leastFitIndex] = nutrient[Rnd.Next(1, 10)];
beneficialInsect[leastFitIndex] = beneficialInsect[Rnd.Next(1, 10)];
harmfulInsect[leastFitIndex] = harmfulInsect[Rnd.Next(1, 10)];
for (i = 1; i < kMaxFlowers; i++)
{
fitTemperature[i] = temperature[Rnd.Next(1, 10)];
fitWater[i] = water[Rnd.Next(1, 10)];
fitSunlight[i] = sunlight[Rnd.Next(1, 10)];
fitNutrient[i] = nutrient[Rnd.Next(1, 10)];
fitBeneficialInsect[i] = beneficialInsect[Rnd.Next(1, 10)];
fitHarmfulInsect[i] = harmfulInsect[Rnd.Next(1, 10)];
}
for (i = 1; i < kMaxFlowers; i++)
{
temperature[i] = fitTemperature[i];
water[i] = fitWater[i];
sunlight[i] = fitSunlight[i];
nutrient[i] = fitNutrient[i];
beneficialInsect[i] = fitBeneficialInsect[i];
harmfulInsect[i] = fitHarmfulInsect[i];
}
for (i = 1; i < kMaxFlowers; i++)
{
if (Rnd.Next(1, 100) == 1)
temperature[i] = Rnd.Next(1, 75);
if (Rnd.Next(1, 100) == 1)
water[i] = Rnd.Next(1, 75);
if (Rnd.Next(1, 100) == 1)
sunlight[i] = Rnd.Next(1, 75);
if (Rnd.Next(1, 100) == 1)
nutrient[i] = Rnd.Next(1, 75);
if (Rnd.Next(1, 100) == 1)
beneficialInsect[i] = Rnd.Next(1, 75);
if (Rnd.Next(1, 100) == 1)
harmfulInsect[i] = Rnd.Next(1, 75);
}
}
/**//// <summary>
/// 显示种群中个体对环境的适应能力,还有所有个体对环境的适应能力之和。
/// </summary>
public void Show()
{
int sum = 0;
for (int i = 1; i < kMaxFlowers; i++)
{
int fitness = Fitness(i);
sum += fitness;
Console.WriteLine("No." + i + "'s fitness is " + fitness);
}
Console.WriteLine("fitness sum is " + sum);
}
}
}
(编辑:IT资讯之家 www.it55.com)