Example #1
0
int main(int argc, char *argv[])
{
	int t = 0, w = 0;
	int line = 0;
	int inputNum;
	int i, j, k, z;
	int minMaxBandwidth = 0;
	int maxBandwidth[128];
	int lastBandwidth, tempPrice;
	int hasDev[128];
	double maxBP, maxBPs[128*128];
	scanf("%d", &t);
	for ( i = 0; i < t; i++) {
		scanf("%d", &denum);
		memset(devices, 0, sizeof(devices));
		memset(maxBandwidth, 0, sizeof(maxBandwidth));
		inputNum = 0;
		minMaxBandwidth = -1;
		for ( j = 0; j < denum; j++) {
			scanf("%d", &mi[j]); 
			for ( k = 0; k < mi[j]; k++ ) {
				scanf("%d %d", &devices[j][k].bandwidth, &devices[j][k].price);
			}
		}
		comput(9999999, 0, 0);
	}
}
Example #2
0
void comput(int minb, int p, int dev) {
	int i, j;
	double tempBP;
	int tempb;
	for ( i = 0; i < mi[dev]; i++ ) {
		for ( j = 0; j < dev && i != 0; j++ ) {
			printf("\t\t");
		}
		printf("%d %d %d\t", devices[dev][i].bandwidth, devices[dev][i].price, dev);
		if ( devices[dev][i].bandwidth < minb ) {
			tempb = devices[dev][i].bandwidth;
		} else {
			tempb = minb;
		} 
		if ( dev >= denum-1 ) {
			tempBP = tempb*1.0/(p+devices[dev][i].price);
			if ( tempBP > maxAns ) {
				maxAns = tempBP;	
			}
			printf(" %d:%.3lf\n", minb, maxAns);
		} else {
			comput( tempb, p+devices[dev][i].price, dev+1);
		}
	}
	return;
}
Example #3
0
void testNetwork(){
	struct _finddata_t files;
 	int File_Handle;
 	int right=0,i,j,check;
	char test[100],tem[100],log[100];
	printf("请输入您想测试的字体 \n");
	scanf("%s",test);
	strcat(test," test/");
	printf("\n");
	
	while (test[0]!='0'){
		tem[0]='\0'; 
		mycpy(tem,test);
		strcat(test,"*.txt");
		File_Handle = _findfirst(test,&files);
		if(File_Handle==-1) {
			 printf("文件目录不存在\n\n");
			 printf("请输入您想测试的字体 \n");
		   	 printf("请输入您想测试的字体 \n");
			 scanf("%s",test);
			 strcat(test," test/");
			 printf("\n");
			 continue ;	
  		}	
  		Data = 0; 
  		e = 0;
 		do{
 			mycpy(log,tem);
			FILE *fp ;
			if	(files.name[0]=='c') {d_out[Data][0] = 0;d_out[Data][1] = 0;d_out[Data][2] = 0;} 
			if	(files.name[0]=='k') {d_out[Data][0] = 0;d_out[Data][1] = 0;d_out[Data][2] = 1;} 
			if	(files.name[0]=='l') {d_out[Data][0] = 0;d_out[Data][1] = 1;d_out[Data][2] = 0;} 
			if	(files.name[0]=='x') {d_out[Data][0] = 0;d_out[Data][1] = 1;d_out[Data][2] = 1;} 
			if	(files.name[0]=='z') {d_out[Data][0] = 1;d_out[Data][1] = 0;d_out[Data][2] = 0;} 
			strcat(log,files.name);
			fp=fopen(log,"r");
			for (i=0;i<216;i++)	fscanf(fp,"%lf",&d_in[Data][i]);
 			Data++;
 			if (fp==NULL) printf("文件读取失败\n"); 
			fclose(fp);
 		}while(0==_findnext(File_Handle,&files));	
		 Data--;	
		 _findclose(File_Handle);
		 printf("读取%d个测试样本\n",Data);

		 for (i=0;i<Data;i++) {
	 		 comput(i);
	 		 check=1;
		 	 for (j = 0; j < Out; ++j)	if (OutputData[j]!=d_out[i][j]) check=0;
	 	 	 if (check!=1) e++;	
		 }
		 printf("测试完成,共测试%d个样本,错误%d个,错误率%f。\n\n",Data,e,1.0*e/Data);
		 printf("请输入您想测试的字体 \n");
		 scanf("%s",test);
		 strcat(test," test/");
		 printf("\n");
		 continue ;	
	}
}
Example #4
0
void testNetwork(){
	struct _finddata_t files;
 	int File_Handle;
	File_Handle = _findfirst("C:/Users/quheng/Desktop/bpnet/test/*.txt",&files);
	if(File_Handle==-1) {
		 printf("文件目录不存在\n");
		 system("pause");
  		 return 0; 
  	}	
  	Data=0; 
 	do{
		char filepath[10000]="C:/Users/quheng/Desktop/bpnet/test/";
		strcat(filepath,files.name);
		FILE *fp ;
		if	(files.name[0]=='c') {d_out[Data][0] = 0;d_out[Data][1] = 0;d_out[Data][2] = 0;} 
		if	(files.name[0]=='k') {d_out[Data][0] = 0;d_out[Data][1] = 0;d_out[Data][2] = 1;} 
		if	(files.name[0]=='l') {d_out[Data][0] = 0;d_out[Data][1] = 1;d_out[Data][2] = 0;} 
		if	(files.name[0]=='x') {d_out[Data][0] = 0;d_out[Data][1] = 1;d_out[Data][2] = 1;} 
		if	(files.name[0]=='z') {d_out[Data][0] = 1;d_out[Data][1] = 0;d_out[Data][2] = 0;} 
		
		fp=fopen(filepath,"r");
		int i;
		for (i=0;i<216;i++)	fscanf(fp,"%lf",&d_in[Data][i]);
 		Data++;
		fclose(fp);
 	}while(0==_findnext(File_Handle,&files));	
	 Data--;	
	 _findclose(File_Handle);
	 printf("读取%d个测试样本\n",Data); 
	 int right=0,i,j,check;
	 for (i=0;i<Data;i++) {
	 	comput(i);
	 	check=1;
		 	 for (j = 0; j < Out; ++j){
				if (OutputData[j]!=d_out[i][j]) check=0;
			 	printf("%d  ",OutputData[j]);
			 }
			 printf("\n"); 
		if (check!=1) e++;	
	 }
	 printf("测试完成,共测试%d个样本,错误%d个,错误率%f。\n",Data,e,1.0*e/Data);
}
Example #5
0
void  trainNetwork(){												//训练神经网络 
	printf("开始训练神经网络\n");
	int i,c=0,j;
	int check;
	do{
		e=0;
		for (i = 0; i < Data; ++i){
			comput(i);
			check=1;
			for (j = 0; j < Out; ++j)
				if (OutputData[j]!=d_out[i][j]) check=0;
			if (check!=1) e++;
			backUpdate(i);
//			printf("%d  %d   %d\n",OutputData[0],OutputData[1],OutputData[2]);
//			printf("%d  %d   %d\n\n\n",d_out[i][0],d_out[i][1],d_out[i][2]);
		}
		c++;
		printf("第%d次训练网络,误差精度为:%f\n",c,1.0*e/Data);
	}while(c<TrainC && 1.0*e/Data>0.001);
	printf("训练神经网络完毕,读取测试样本\n");
}
Example #6
0
int main3( void )
{
	int ret = comput("431-5*+");
	printf("4+(3-1)*5=%d\n", ret);
	return 0;
}