感知器算法(c语言版).doc
includestdio.hincludetime.hdefine C 1void mainint i,j,k,N1,N2,x202,s3,d20,array204,w4;s用于记录各点坐标乘积;array用于存放将输入点变换后的点printf感知器算法两类别问题n;printf请输入第1类坐标点数N1;scanfd,printf请输入第1类各点的坐标n;fori0;iN1;iscanfd,scanfdd,printf请输入第2类坐标点数N2;scanfd,printf请输入第2类各点的坐标n;fori0;iN2;iscanfd,scanfdd,/*fori0;iN1;i打印输出输入的点坐标;printf输入的第1类坐标点为;printfd,d ,xi0,xi1;fori0;iN2;i打印输出输入的点坐标;printf输入的第2类坐标点为;printfd,d ,xiN10,xiN21;*/printf输入的第1类点为n;forj0;jN1;jarrayj01;arrayj1xj0;arrayj2xj1;arrayj31;printfd,d,dn,arrayj1,arrayj2,arrayj3;printf输入的第2类点为n;forjN1;jN1N2;jarrayj02;arrayj1-1*xj0;arrayj2-1*xj1;arrayj3-1;printfd,d,dn,arrayj1,arrayj2,arrayj3;printf取参数C为dn,C;printf初始向量为n;w01;w10;w20;w30;printfd,d,dn,w1,w2,w3;dofori0;iN1N2;iforj0;j3;jsjarrayij1*wj1;dis0s1s2;ifdi0fork0;k3;kwk1C*arrayik1wk1;forjN1N2-1;j0;jkdj0dj10;whilek;whiled00d10d20d30;printf优化后的向量w;fork0;k3;kprintfd ,wk1;printfn;程序缺点不能动态分配内存大小,导致内存使用浪费;