足彩预测
足彩预测之主要思想及编程实现
在这次数学建模大作业中,我主要负责两个主要的部分:第一、模型的建立;第二、主
体函数的编写。下面我就将阐述我们足彩模型的主要思想以及在这次数学建模过程中我的收
获。
模型的主要思想:
首先,我把部分足彩规则阐述一下:
第一、“14场胜平负”由购买人预测每一轮指定的14场比赛的胜负情况。每场比赛共
有3种预测结果:“3”代表主队胜,“1”代表打平,“0”代表主队输。
第二、购买人预测这14场比赛的胜负组合,构成一注,每注2元。 在这里还有两个条件:
第一、“14场胜负平”共设有一等奖和二等奖,一等奖表示14场比赛全投中,二等奖
表示有一场没猜中。其中一等奖奖金500万元,二等奖20万元。
第二、总资金为20000元,也就是我们可以投注10000次。
同时还有一个隐藏条件:
每场比赛主队胜负平的概率和投注热度保持一致,同时不存在假球的情况。 最后还有一个对冷门的定义:
传统意义的冷门,是指较弱的球队战胜了较强的球队,而没有一个具体的定义,在这个
模型中,我们认为冷门的定义是指超过投注熱度最高卻沒有贏得比賽。
下面我就将把这个足彩预测模型的主要思想进行描述:
一、基本假设:
(1)人们在投注每场比赛时,选择每场比赛胜负平的比例是一定的,不会发生很大变化
(2)每一场比赛的结果是独立的,与其他比赛结果无关
二、变量定义:
xxx,,0,,1,,xxx114,,iiii310iii310i(1)设第场胜负平的投注比例为:,,,
xxx,,,1iii310i是整数,满足。
143,(2)14场比赛的投注情况构成了一个的矩阵input。
1/3(3)如果每一场比赛的投注比例相同,即都为,那么可以说这场比赛是最难的比赛,因为投注没有任何倾向性。于是我们可以定义一个难度值,任何一场比赛的难度被定义成与最难的比赛的距离平方,即:
222Dxxx,,,,,,(1/3)(1/3)(1/3)iiii310
114,定义一个的方差矩阵D
114,(4)按方差值从小到大排序得到的的升序难度矩阵B,即难度从大到小。
(5)难度值从大到小前n场比赛,即方差从小到大前n场比赛 三、模型建立
(1)按难度先对这14场比赛进行排序,可以知道,难度越大,选对的可能性就越
小,为了解决这个问
,我们决定难度大的前n场比赛采取全排列的投法,即把这n
场比赛中可能出现的所有情况全部投一遍。
(2)余下的14-n场比赛,由于难度较小,于是每场比赛我们都采用按概率随机投
注的办法,但因为一些极端情况出现的概率极小。为了能获得更高的获奖概率,我们得
把那些极端的情况排除以后随机。于是采取的办法是:按概率随机投,然后
冷门,
如果冷门数超过一个门限,就认为这种情况是不可能出现的,就排除这种投注
,再
随机知道满足条件。按这样随机10000注,得到最终的10000投注方案。注:这个门限
值通过50组的数据统计,发现是2.417。
四、主体程序
function y=zucai(input,n)%input是輸入矩陣,n是難度前n
for i=1:14
A(i)=sum(input(i,:))/3;
end
for i=1:14
D(i)=((input(i,1)-A(i))^2+(input(i,2)-A(i))^2+(input(i,3)-A(i))^2
)/3;
End %求14場比賽的方差
B=sort(D);%按升序排列D
j=1;
for i=1:14
if D(i)<=B(n)
C(j)=i;
j=j+1;
end
End%找到那些前n難度的比賽序號
if n==1
y=QuanPaiLie1(B,D,1);
elseif n==2
y=QuanPaiLie2(B,D,2);
elseif n==3
y=QuanPaiLie3(B,D,3);
elseif n==4
y=QuanPaiLie4(B,D,4);
elseif n==5
y=QuanPaiLie5(B,D,5);
End
%先对那些难度高的比赛进行全排列
count=0;
result=[3 1 0];
for i=1:14
for j=1:3
if max(input(i,:))==input(i,j)
S(i)=result(j);
end
end
End
%找出一种全是概率高的方案 xx=1;
num=0;
while(xx<10000)
T=suiji(input);
for i=1:14
if T(i)==S(i)
continue;
else
for k=1:n
if i==C(k)
continue;
else
num=num+1;
end
end
if num==0
count=count+1;
end
end
End
%如果不是难度高的,同时随机剩余的比赛结果,如果超过3场冷门,就放弃这种方案,
重新随机一中方案
if(count>3)
T=suiji(input);
else
for i=1:14
if D(i)>B(n)
y(xx,i)=T(i);
end
end
xx=xx+1;
end
end
五、心得与体会
在这次数学建模中,我有以下几个收获:
第一、了解了足彩投注的规则
第二、对matlab编写程序越来越熟悉,掌握了更多的matlab命令。
第三、了解了按方差定义的难度概念