int main(){ srand(time(0)); int arr[10]={},num = 0; lottery(arr,6);//6小于arr[10]声明中的10,可以使用 for (num = 0;num<=5;num++){ printf("%d ",arr[num]); } printf("\n"); return 0; }
int main() { const unsigned POP_SIZE = 10, CHROM_SIZE = 12; unsigned i; eoBooleanGenerator gen; // the populations: eoPop<Chrom> pop; // Evaluation RoyalRoad<Chrom> rr( 8 ); eoEvalFuncCounter<Chrom> eval( rr ); eoInitVirus<float> random(CHROM_SIZE, gen); for (i = 0; i < POP_SIZE; ++i) { Chrom chrom; random(chrom); eval(chrom); pop.push_back(chrom); } std::cout << "population:" << std::endl; for (i = 0; i < pop.size(); ++i) std::cout << "\t" << pop[i] << " " << pop[i].fitness() << std::endl; // selection eoStochTournamentSelect<Chrom> lottery(0.9 ); // breeder eoOneBitFlip<Chrom> vm; eoUBitXover<Chrom> xover; eoProportionalOp<Chrom> propSel; eoGeneralBreeder<Chrom> breeder( lottery, propSel ); propSel.add(vm, 0.2); propSel.add(xover, 0.8); // Replace a single one eoCommaReplacement<Chrom> replace; // Terminators eoGenContinue<Chrom> continuator1(10); eoFitContinue<Chrom> continuator2(CHROM_SIZE); eoCombinedContinue<Chrom> continuator(continuator1, continuator2); eoCheckPoint<Chrom> checkpoint(continuator); eoStdoutMonitor monitor; checkpoint.add(monitor); eoSecondMomentStats<Chrom> stats; eoPopStat<Chrom> dumper( 10 ); monitor.add(stats); checkpoint.add(dumper); checkpoint.add(stats); // GA generation eoEasyEA<Chrom> ea(checkpoint, eval, breeder, replace ); // evolution try { ea(pop); } catch (std::exception& e) { std::cout << "exception: " << e.what() << std::endl;; exit(EXIT_FAILURE); } std::cout << "pop" << std::endl; for (i = 0; i < pop.size(); ++i) std::cout << "\t" << pop[i] << " " << pop[i].fitness() << std::endl; std::cout << "\n --> Number of Evaluations = " << eval.getValue() << std::endl; return 0; }