应用MATLAB分析双色球历史数据

%双色球历史数据分析
%
clc;clear;
[ssqdata,~]=xlsread('ssq.xls'); %从excel中读取数据
[col,~]=size(ssqdata); %获取行数据
RedId=ssqdata(:,3:9); %读取红球和篮球数据
idsum7=tabulate(RedId(:,7)); %统计个数
Redmax=max(idsum7(:,2)); %统计数最多
Redmin=min(idsum7(:,2)); %统计数最小
Red01=Redmax-Redmin; %最大最小波动差
Red=[col,Redmin,Redmax,Red01];
disp(Red);

RedSum=10; %玩的周期数
step=10; %周期限定个数

RedMean=(RedSum+1)/2; %确定均值
LowStar=1; %确定初始值

RedData=zeros(6,1); %红球数据
idsum=zeros(RedSum*col*6,2); %记录中奖球个数
ijk=1;
for ii=1:RedSum
    for jj=1:col
        LowStar= 1+rem(jj,step); %确定循环数
        RedOring=sort(RedId(jj,1:6)); %获取红球数据
        if jj<=32
            bluenum=randperm(16); %随机生成一组没有重复的整数
            for kk=1:LowStar
                rednum=randperm(32); %随机生成一组没有重复的整数
                RedData=[rednum(3),rednum(6),rednum(9),rednum(12),rednum(15),rednum(18)];%随机挑选
                RedData=sort(RedData); %排序
                id=0;
                for nn=1:6
                    if RedOring(nn)==RedData(nn)
                        id=id+1; %统计相同的个数
                    end
                end
                ijk=ijk+1;
                if bluenum(7)==RedId(jj,7)
                    id=id+1; %统计相同的个数
                    idsum(ijk,2)=1;
                end
                if id==7
                   disp('中奖了');
                end                
                idsum(ijk,1)=id;
            end
        else
            if  LowStar==1
                BlueData=RedId(jj-32:jj,7);
                for mm=1:step
                    if find(BlueData(mm,1)~= BlueData(32-step:32,1))
                        BlueData1= BlueData(mm,1);
                    end
                    rednum=randperm(32); %随机生成一组没有重复的整数
                    RedData=[rednum(3),rednum(6),rednum(9),rednum(12),rednum(15),rednum(18)];%随机挑选
                    RedData=sort(RedData); %排序
                    id=0;
                    for nn=1:6
                        if RedOring(nn)==RedData(nn)
                            id=id+1; %统计相同的个数
                        end
                    end
                    ijk=ijk+1;
                    if BlueData1==RedId(jj,7)
                        id=id+1; %统计相同的个数
                        idsum(ijk,2)=1;
                    end
                    if id==7
                        disp('中奖了');
                    end                    
                    idsum(ijk,1)=id;
                end
            end
        end        
    end
end

[id1,~]=size(find(idsum==6));
[id2,~]=size(find(idsum==5));
id6=5*sum(idsum(:,2));
mansum=id1*500000+id2*3000+id6*5;
disp(unique(idsum'));
disp(['一等奖个数=',num2str(id1)]);
disp(['三等奖个数=',num2str(id2)]);
disp(['六等奖个数=',num2str(id6)]);
disp(['投入总资金=',num2str(ijk*2)]);
disp(['总奖金=',num2str(mansum)]);
disp(['差额=',num2str(mansum-ijk*2)]);
disp(['投入的时间(年)=',num2str(ijk*2/360)]);


输出结果:

2172         120         151          31

     0
     1
     2
     3
     4
     5

一等奖个数=0
三等奖个数=1
六等奖个数=6420
投入总资金=46202
总奖金=35100
差额=-11102
投入的时间(年)=128.3389

作者:LiW

你可能感兴趣的:(智能钻完井)