有一个C#遗传算法程序求y=x*x在[0,31]范围内的极值。有的地方看不太懂,请大神解读,最好详细一点。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//遗传算法求Y=X*X 在区间[0-31]的最大值
namespace 遗传算法
{
class Program
{
//定义样本数
static int N = 10;
//定义DNA位数
static int M = 5;
//定义样本DNA数组
static int[,] DNA = new int[N,M];//定义多维数组
//定义样本表现值
static int[] show = new int[N];
//定义样本存活累计概率0-1
static double[] alive = new double[N];
//定义淘汰阈值
static int sigma = 3;
//定义繁衍代数
static int T = 100;
//定义交换基因次数
static int C = 1;
//将样本10进制求2进制 j表示位数
static void tentotwo()
{
for (int i = 0; i < N;i++ )
{
int j = 0;
int tempshow = show[i];
while (tempshow != 0)
{
DNA[i,j] = tempshow% 2;
tempshow /= 2;
j++;
}
}
}
//将样本2进制转10进制
static void twototen()
{
for (int i = 0; i < N; i++)
{
int&