2021年电赛H题检测算法开源

extern double V,C,P,E_con;//电压,电流,功率
double contrast[7]={9401,11280,1880,3760,7520,235000,1942040};//已知的各用电器功率参数
double trait=0,P_sum;//trait实测的总功率
int difference_Pflag[7]={0,0,0,0,0,0,0};// 存储用电器状态(1或0)
double difference_Pwork[7];//各个用电器工作状态对应的功率

void Electrical_identify()
{
	int m,flag=0;
	int times=0,timestmp=0;
	trait=P*1000;
	for(times=0;times<128;times++)
	{	 	
		timestmp=times;
		for(m=0;m<7;m++) 
		difference_Pflag[m]=0; 
		m=0;
		while(timestmp)
		{
			difference_Pflag[m]=timestmp%2;
			timestmp=timestmp/2;
			m++;
		}
		for(m=0;m<7;m++)
		{
			difference_Pwork[m] = difference_Pflag[m]*contrast[m];//遍历数组
		}
		for(m=0;m<7;m++) 
		{
			P_sum+=difference_Pwork[m];
		}
		if(abs(P_sum-trait)<3)//进行匹配
		{
			for(m=0;m<7;m++)
			{
				Electrical_LCD(); 	 
			}
			P_sum=0;
			break;
		}
		P_sum=0;
	}
}

你可能感兴趣的:(笔记,算法)