資源簡介
遺傳算法的c++實現,代碼量一般,使用方便。在求值優化時只需要將函數表達式改變即可。
代碼片段和文件信息
//?位向量求解函數最值程序
#include?
#include?
#include?
#include?
#include?“bitvector.h“
using?namespace?std;
double?f(double?x)
{
????return?cos(x)?+?sin(2?*?x);
}
double?f_value(double(*?func)(double)?const?BitVector?&?arr?int?&?N?double?a?double?b)
{
????double?res?m?=?0.0;
????for(int?j?=?0;?j?????{
????????double?k?=?j;
????????m?+=?arr[N?-?j?-?1]?*?pow(2.0?k);
????}
????double?x?=?a?+?m?*?(b?-?a)?/?(pow(2.0?N)?-?1.0);
????res?=?func(x);
????return?res;
}
double?x_value(const?BitVector?&?arr?int?&?N?double?a?double?b)
{
????double?m?=?0.0;
????for(int?j?=?0;?j?????{
????????double?k?=?j;
????????m?+=?arr[N?-?j?-?1]?*?pow(2.0?k);
????}
????double?x?=?a?+?m?*?(b?-?a)?/?(pow(2.0?N)?-?1.0);
- 上一篇:數據結構 vc++6.0 順序表
- 下一篇:ADF4360-8C語言程序
評論
共有 條評論