gene.cpp

来自「这是遗传算法的源代码」· C++ 代码 · 共 60 行

CPP
60
字号
// -*- c++ -*-////  File:         gene.cpp////  Description:  C++ implementation for the class gene.//                A gene stores an allele, 0 or 1.////  Author:       Fernando Lobo////  Date:         June/1999////  Extended to deal with chi-ary problems by Luis de la Ossa//  GCC 3.4 and 4 series compliance by Kumara Sastry ////  Date:         March/2006#include <assert.h>#include <iostream>#include "gene.hpp"#include "parameter.hpp"#include "random.hpp"      // random number generatorextern randomG RANDOM; // generate an allele randomlyvoid gene::random(int position){ 		  Allele = RANDOM.uniform(0,parameter::ranges[position]-1);}// print the genestd::ostream &operator<< (std::ostream &out, const gene &g){  out << g.Allele;   return out;}// assignment operator: gene = genegene & gene::operator=(const gene &g){  if (this== &g) return *this;  Allele = g.Allele;  return *this;}// assignment operator: gene = intgene & gene::operator=(const int v){  Allele = v;  return *this;}// changes allelevoid gene::mutate(int position){  // the operation ensures the change in the allele without using any loop.	  Allele = (Allele + RANDOM.uniform(1,parameter::ranges[position]-1)) % parameter::ranges[position];}

⌨️ 快捷键说明

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