±àÂ룺ÔÂëÐòÁдӡ°ÊäÈëÐòÁС±±à¼¿òÊäÈ룬µã»÷¡°±àÂ롱°´Å¥ÔÚ¡°±àÂëÐòÁС±±à¼¿ò ÄÚÊä³ö±àÂëÐòÁУ¬¶ÔÊäÈë±àÂëÒªÇóΪ¶þ½øÖÆÊäÈë ÒëÂ룺±àÂëÐòÁдӡ°ÊäÈëÐòÁС±±à¼¿òÊäÈ룬µã»÷¡°ÒëÂ롱°´Å¥ÔÚ¡°ÒëÂëÐòÁС±±à¼¿ò ÄÚÊä³öÒëÂëÐòÁУ¬ÈôÒëÂë´íÎó»áÓÐÏìÓ¦µÄ±¨´íºÍ¾À´í£¬¶ÔÊäÈëÐòÁÐÓв»Ð¡ÓÚÈýλºÍ¶þ½ø ÖÆÐòÁеÄÒªÇó 1.4 ºËÐÄ´úÂëÓë×¢ÊÍ ÊäÈëÐòÁпòcallback %×öÊäÈë¼ì²â£¬¼ì²âÊÇ·ñÊÇ¡°0¡±¡°1¡±ÊäÈ룬·ñÔò±¨´í temp_str=get(handles.input,'String'); num_char=unique(temp_str);%uniqueº¯Êý»ñµÃÊä
Èë×Ö·û´®Öв»Í¬×Ö·ûµÄ×Ö·û´® if length(num_char)==2 %Èç¹û×Ö·û´®³¤¶ÈΪ2 if num_char(2)=='1' %µÚ¶þ¸ö×Ö·û²»ÊÇ¡°1¡±ËµÃ÷×Ö·û´®ÖÐÓÐÆäËû×Ö·û else set(handles.input,'String','0000'); errordlg('Ö»ÄÜÊäÈë1ºÍ0','ÊäÈë´íÎó'); end elseif length(num_char)==1 %Èç¹û×Ö·û´®³¤¶ÈΪ1£¬Åжϡ°1¡±»¹ÊÇ¡°0\·ñÔò±¨´í if num_char(1)=='0' elseif num_char(1)=='1' else set(handles.input,'String','0000'); errordlg('Ö»ÄÜÊäÈë1ºÍ0','ÊäÈë´íÎó'); end else %Èç¹û×Ö·û´®³¤¶È²»Îª2£¬Ö±½Ó±¨´í set(handles.input,'String','0000'); errordlg('Ö»ÄÜÊäÈë1ºÍ0','ÊäÈë´íÎó'); End ±àÂë°´Å¥callback£¨±àÂëºËÐÄ£©
%»ñÈ¡ÊäÈë×Ö·û´® temp_str=get(handles.input,'string'); %»ñÈ¡×Ö·û´®³¤¶È len_str=length(temp_str); %ת´æÔÂë×Ö·û´®³¤¶È±¸Óà k=len_str; %³õʼ»¯ÐèÒª²åÈëµÄУÑéÂëµÄλÊý r=0; %¸ù¾Ýº£Ã÷±àÂëµÄ2^(r)-1)<(k+r)ÒªÇ󣬼ÆËãУÑéÂëλÊý while((2^(r)-1)<(k+r)) r=r+1; end %°Ñ×Ö·û´®Êý×éת³É0ºÍ1µÄÊý×飬±ãÓÚ´¦Àí for i=1:1:len_str if temp_str(i)=='1' yuan(i)=1;%ÔÂëÊý×éΪyuan else yuan(i)=0; end end
%°ÑÇóµÃÏàӦλÊýµÄУÑéÂ룬ÓÃ0²åÈëÔÂëÖеõ½ÐÂÂë j=0; m=1; for i=1:1:(k+r) if i==2^(j) %Èç¹û¸ÃλÖÃΪ2µÄ´Î·½£¬Ôò²åÈëУÑéÂë xin(i)=0; j=j+1; else xin(i)=yuan(m); m=m+1; end end %½øÐк£Ã÷±àÂë odd=0;%ÓÃÓÚ¼ÆËãÿλУÑéÂ븺ÔðУÑéµÄλÖÃµÄºÍ for j=1:1:r %¹²ÓÐrλУÑéÂ룬ÐèÒª¼ÆËãr´Î n=1; %³õʼ»¯Ñ»·±äÁ¿ i=1; while((n*2^(j-1)+i-1)<=(k+r))%µ±Ã»Óг¬¹ýÊý×鳤¶Èʱ¼ÌÐøÑ»·
if i>(2^(j-1)) %Èç¹û±¾¶ÎµÄ±àÂëÒѾ¼ÓÍê i=1; %Ôòµ÷תµ½ÏÂÒ»¶Î£¬Ò²¾ÍÊǸôÒ»¸ö2^(j-1)µÄ¶ÎÔÙ½øÐÐÀÛ¼Ó n=n+2; else %ÀÛ¼Ó odd=odd+xin(n*2^(j-1)+i-1); i=i+1; end end if mod(odd,2)==0 %ÅжÏÊÇ·ñΪżÊý xin(2^(j-1))=0; %ÈôΪżÊý£¬ÔòÔÚ¶ÔÓ¦µÄУÑéλ²åÈë0 else xin(2^(j-1))=1; %ÈôÎªÆæÊý£¬ÔòÔÚ¶ÔÓ¦µÄУÑéΪ²åÈë1 end odd=0; end %±àÂëÍê±Ï£¬°ÑÊý×éת»»³É×Ö·û´®ÓÃÓÚÊä³ö
Ïà¹ØÍÆ¼ö£º