⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 init.c

📁 其中提到遺傳學的程式碼與應用提供給次淚相向的研究者參考下載
💻 C
字号:
#define TEST 0
#include "genet.h"


init_one_population( sour_size, dest_size, sour_tab, dest_tab)
int sour_size, dest_size;
int sour_tab[];
int dest_tab[];
{
	int p, i, j, temp_i, temp_j, res_i, res_j, val;
	int taken_row[K];
	int taken_col[N];
	int count;
	int row = 0;
	int col = 0;
	
	for (i=0; i < sour_size; ++i){
	   for (j=0; j < dest_size; ++j) {initial[i][j] = 0;}}
	
	for (i = 0; i < sour_size; ++i) {taken_row[i] = 0;}
	for (j = 0; j < dest_size; ++j) {taken_col[j] = 0;}
	
	for (i = 0; i < sour_size; ++i)
	   if (sour_tab[i] != 0) row = row +1; else taken_row[i] = 1;
	
	for (i = 0; i < dest_size; ++i)
	   if (dest_tab[i] != 0) col = col +1; else taken_col[i] = 1;
	   
	
	
	while ((row != 0) || (col != 0)){
	   temp_i = random0(row);
	   temp_j = random0(col);
	
	   p = -1; count = -1;
		while (count < temp_i)
		{
			++p;
			if (taken_row[p] == 0) count++;
		}
	   res_i = p;
	
	   p = -1; count = -1;
	   while (count < temp_j){++p;
	      if (taken_col[p] == 0) count++;
	      }
	   res_j = p;   
	
	   val = min(sour_tab[res_i], dest_tab[res_j]);
	   initial[res_i][res_j] = val;
	   sour_tab[res_i] = sour_tab[res_i] - val;
	   dest_tab[res_j] = dest_tab[res_j] - val;
	   if (sour_tab[res_i] == 0) {taken_row[res_i] = 1; row = row - 1;}
	   if (dest_tab[res_j] == 0) {taken_col[res_j] = 1; col = col - 1;}
	   
	   }
#if TEST
	   for (i=0; i < k; ++i)                                       
	     {  printf("%d: ",i);
	     	for (j=0; j < n; ++j)                                     
	      		printf("  %d",initial[i][j]);
	      	printf("\n");
	      }
	    printf("\n");   
#endif
}

min (x,y)
int x,y;
{
	if (x < y) return (x); else return (y);
}

max (x,y)
int x,y;
{
	if (x < y) return (y); else return (x);
}


random0(p)
int p;
{
	int r;
	
	if (p ==0) return (0); else {r = rand()%p; return(r);}
}

random1(p)
int p;
{
int r;

	if (p ==0) return (0); else {r = rand()%p; return(r+1);}
}

⌨️ 快捷键说明

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