📄 wuxing_suojian_all.asv
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%本段程序实现22选5的号码缩水%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%25个有 177,100
%33个数字全包有1107,568注
%马龙
tic
all=22
b=5;
c=all-b+1;
% 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22
s=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ]
zs=(all*(all-1)*(all-2)*(all-3)*(all-4)) / (5*4*3*2)
a=double(zeros(zs,5)) ;
m=1;
for i=1:c
for j=(i+1) :(c+1)
for k=(j+1) : (c+2)
for x=(k+1) : (c+3)
for y=(x+1) : (c+4)
a(m,1)=s(i);
a(m,2)=s(j);
a(m,3)=s(k);
a(m,4)=s(x);
a(m,5)=s(y);
m=m+1;
end
end
end
end
end
disp('所有组合数len');
len=length(a) %所有组数
%%二、判断和值%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%和值
%%%
%%%%范围在(50; 80)“往期规律”发现,总和数在?—?之间的期数为最多
for i=1:len
he=0;
for j=1:5
he=he+a(i,j);
end
if he<=50||he>=70
a(i,:)=0;
end
end
%缩减后的组数计算
jishu1=0;
for i=1:len
if a(i)~=0
jishu1=jishu1+1;
end
end
disp('和值缩减后注数');
disp(jishu1);
% %
% % 一、 判断偶数、奇数的比列缩减%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 奇偶
% %
%b=zeros(1073,5) ;
for i=1:len
sum=0;
k=0;
for j=1:5
if rem( a(i,j),2 )==0;
sum=sum+1;
end;
end
if sum==5; %%%%%%%%%%%%%%%%%%%%%%%%%%%全偶数则消除
a(i,:)=0;
end;
if sum==4; %%%%%%%%%%%%%%偶数:奇数 = 4:1 则消除
a(i,:)=0;
end;
end
for i=1:len
sum1=0;
for j=1:5
if rem( a(i,j),2 )==1
sum1=sum1+1;
end
end
if sum1==5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%全奇数则消除
a(i,:)=0;
end
if sum1==4; %%%%%%%%%%%奇数:偶数 = 5:1 则消除
a(i,:)=0;
end;
end
%缩减后的组数计算
jishu=0;
for i=1:len
if a(i)~=0
jishu=jishu+1;
end
end
disp('奇偶比列缩减后注数');
disp(jishu);
% %
% %
% %
% % 分区分布缩减%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(1-7;8-15;16-22)
% % %%%%%%%%%%%%%%消除含4、0、 的项,其实就是1、2、3的组合了。(123、132、213、231、312、321,222)
% %
for i=1:len
sum11=0;
sum22=0;
sum33=0;
for j=1:5
if a(i,j)>=1&&a(i,j)<=7
sum11=sum11+1;
end
if a(i,j)>=8&&a(i,j)<=15
sum22=sum22+1;
end
if a(i,j)>=16&&a(i,j)<=22
sum33=sum33+1;
end
end
if sum11==0||sum22==0||sum33==0; %只要一个为0就缩减掉
a(i,:)=0;
end
end
%缩减后的组数计算
jishu2=0;
for i=1:len
if a(i)~=0
jishu2=jishu2+1;
end
end
disp('分区缩减后注数');
disp(jishu2);
% %
% % 大小比列缩减,2:3 ,3:2最多%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
for i=1:len
n=0;
for j=1:5
if a(i,j)>=1&&a(i,j)<=11
n=n+1;
end
end
if n==4||n==1||n==0||n==5 %一注中大小比列为4:1 或者1:4或 0:5、5:0则删除。
a(i,:)=0;
end
end
%缩减后的组数计算
jishu3=0;
for i=1:len
if a(i)~=0
jishu3=jishu3+1;
end
end
disp('大小缩减后注数');
disp(jishu3);
% % %连号缩减:一般为0,1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:len
m=0;
for j=1:4
if a(i,j+1)-a(i,j)==1
m=m+1;
end
end
if m>=2
a(i,:)=0;
end
end
%缩减后的组数计算
jishu4=0;
for i=1:len
if a(i)~=0
jishu4=jishu4+1;
end
end
disp('连号缩减后注数');
disp(jishu4);
% %
% 消除某数字%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:len
n=0;
for j=1:5
if a(i,j)==-1 %||a(i,j)==18%||a(i,j)==10 ||a(i,j)==30||a(i,j)==11
n=1;
end
end
if n==1
a(i,:)=0;
end
end
%缩减后的组数计算
jishu432=0;
for i=1:len
if a(i)~=0
jishu432=jishu432+1;
end
end
disp('消除某些数字后注数');
disp(jishu432);
% %
% % % 最大间隔过滤,最大间隔:10%%%%%%%%%%%%%%%%%%
for i=1:len
m=0;
for j=1:4
if a(i,j+1)-a(i,j)>=10
m=m+1;
end
end
if m
a(i,:)=0;
end
end
%缩减后的组数计算
jishu5=0;
for i=1:len
if a(i)~=0
jishu5=jishu5+1;
end
end
disp('最大间隔缩减后注数');
disp(jishu5);
% %
% %
% % 尾数相同最大个数为2个,占了绝大多数,其他可以删除%%%%%%%%%%%%%%%%%%
% %
for i=1:len
n=0;
n1=0;
n2=0;
n3=0;
n4=0;
for j=1:5
w(j)=rem( a(i,j),10 );
end
for k=1:4
if w(1)==w(k+1)
n=n+1;
end
end
for k1=2:4
if w(2)==w(k1+1)
n1=n1+1;
end
end
for k2=3:4
if w(3)==w(k2+1)
n2=n2+1;
end
end
if w(4)==w(5)
n4=n4+1;
end
if (n+n1+n2+n4)>2
a(i,:)=0;
end
end
%缩减后的组数计算
jishuwt=0;
for i=1:len
if a(i)~=0
jishuwt=jishuwt+1;
end
end
disp('尾数相同缩减后注数');
disp(jishuwt);
%% 必然会出现的数字,排除没有这些数字的组数%%%%%%%%%%%%%%%%%%Matlab 中一些符号的含义Matlab%%%%%%%%%%%%%%%%%%
%% 中一些符号的含义Matlab 中一些符号的含义Matlab 中一些符号的含义Matlab 中一些符号的含义
for i=1:len
nx=0;
for j=1:5
if ~( a(i,j)==3||a(i,j)==5||a(i,j)==8||a(i,j)==11||a(i,j)==17||a(i,j)==19 ) %重号。上期开的数字
nx=nx+1;
end
end
if nx==6
a(i,:)=0;
end
end
%%缩减后的组数计算
jibt=0;
for i=1:len
if a(i)~=0
jibt=jibt+1;
end
end
disp('选择必出数字缩减后注数');
disp(jibt);
% % % 重号缩减:通过“重号数”的“往期规律”发现1重号的期数为最多%%%%%%%%%%%%%%%%%%
% %
% %
% %
% %
% %
% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%缩减
% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%后的
% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%数组
% %
ja=1;
%b(1,1)=0;
for i=1:len
if a(i)~=0
ball(ja,:)=a(i,:);
ja=ja+1;
end
end
disp('最终缩减后注数');
lens=length(ball)
disp('程序运行时间:');
toc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -