cgenome.cpp

来自「自己收集的八皇后问题相关知识,有不少源代码,能解决八皇后问题」· C++ 代码 · 共 52 行

CPP
52
字号
#include "CGenome.h"

CGenome::CGenom(int num_bits)
{
	num_bit = num_bits;
	dFitness = 0;
	int n = 0;
	int i = 0,j = 0;
	for(i = 0; i < num_bits; i++)
	{
		do
		{
			n = rand()%num_bits;
			for(j = 0; j < i; ++j)
			{
				if(n == vecBits[j])
				{
					break;
				}
			}
		}while(j != i);
		vecBits.push_back(n);
	}
}

void CGenome::ShowBits()
{
	for(vecBits_it = vecBits.begin(); vecBits_it != vecBits.end(); vecBits_it++)
	{
		cout<<*vecBits_it+1<<' ';
	}
	UpdateFitnessScore();
	cout<<"Fit: "<<dFitness<<endl;
}

void CGenome::UpdateFitnessScore()
{
	int i = 0,j = 0;
	double wrong = 0;
	for(i = 0; i < num_bit; i++)
	{
		for(j = i+1; j < num_bit; j++)
		{
			if(vecBits[i]-i == vecBits[j]-j || vecBits[i]+i == vecBits[j]+j)
			{
				wrong++;
			}
		}
		
	}
	dFitness = 1/(wrong+1);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?