unicross.c

来自「这是一个用C++写成的遗传算法例子,适合初学者」· C语言 代码 · 共 40 行

C
40
字号

/*    file :  unicross.c
 *
 *    purpose : implemnetation  of uniform crossover
 *
 */
#include <stdlib.h>
#include <time.h>
#include <stdio.h>

void
unicross(int *Kid1,int *Kid2,int len)
/* int     len;      the length of the vector */
/* int     *Kid1;    pointer to crossover partners */
/* int     *Kid2; */
{
	int     i;
	double  prob;

	int     Tmp;            /* used for swapping alleles */

	randomize();


	/* crossover through exchanging information */

	for (i=0; i<len;i++)
	{
		prob=(1.0*random(1000))/1000;
		if (prob>0.5)
		{
			Tmp=Kid1[i];
			Kid1[i]=Kid2[i];
			Kid2[i]=Tmp;
		}
	}/* end for */
} /* end uniform crossover */


⌨️ 快捷键说明

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