了解世界杯赔率,让您运气更‘好‘(个人分享)

了解世界杯赔率,让您运气更‘好‘(个人分享)

足球世界杯买球赢面计算

前言理论基础实际计算用例:代码实现真实数据

前言

此文是个人关于世界杯的一些浅显的看法,实际统计结果和计算方法有出入,可能原因:1)数据量不够。2)比赛双方差距够大导致的。但在双方实力相近的情况下,选择平是一个不错的决定!

理论基础

假设有两只球队甲和乙,在双方实力局等的情况下,赢球概率都为0.5%,则有:

甲乙概率胜负1/4胜胜1/4负胜1/4负负1/4

由此可知:甲胜的概率是1/4,平的概率是1/2,乙胜的概率是1/4。

在正常保本情况下的买入操作为: 甲胜 100,平 200, 乙胜 100 合计400。 赔率对应为:

操作买入金额合理赔数甲胜100400平200400乙胜100400

合计购入400合计,则不亏钱。 反推概率计算公式为:

甲胜: 100/(100+200+100) = 0.25;

平: 200/(100+200+100) = 0.5;

乙胜 : 100/(100+200+100) = 0.25;

因此,可采用体彩公司提供的赔率信息,大致计算出体彩给的各场比赛的预期可赢率。具体方法:

计算总胜赔数:

总胜赔数 = (甲胜赔率 + 乙胜赔率 + 2*平赔率)*100;

分别计算甲乙的官方输赢比:

甲前赔率 = sqrt(甲胜赔数/总胜赔数);

乙前赔率 = sqrt(乙胜赔数/总胜赔数);

甲的官方赔率 = 甲前赔数/( 甲前赔数+ 乙前赔数);

乙的官方赔率 = 乙前赔数/( 甲前赔数+ 乙前赔数);

在假设按上面规则买了400的前提下,结合甲乙的官方赔率,推测输赢概率与官方赔率刚好相反,反算可赢率(其中保本为1):

甲胜可赢数量= 100*甲胜赔率* 乙的官方赔率^2;

乙胜可赢数量= 100*乙胜赔率* 甲的官方赔率^2;

平可赢数量 = 200*平赔率* 甲的官方赔率* 乙的官方赔率;

可赢率 = (甲胜可赢数量+乙胜可赢数量+平可赢数量)/400;

实际计算用例:

有了上面的基础,接下来引入实际用例计算各种情况下的可赢率:

卡特尔VS荷兰:

总胜赔数 = (13+1.11+2*6.2)*100 = 2651;

卡前赔率 = sqrt(卡胜赔数*100/总胜赔数)=0.7002;

荷前赔率 = sqrt(荷胜赔数*100/总胜赔数)=0.2046;

卡胜官方赔率 = 卡前赔率/( 卡前赔率+ 荷前赔率)=0.77;

荷胜官方赔率 = 荷前赔率/( 卡前赔率+ 荷前赔率)=0.23;

可赢率 = (1300*0.23*0.23+111*0.77*0.77+200*6.2*0.23*0.77)/400

=(68.77+65.81+219.60)/400 = 0.885

可赢率为88.5%(低于1)。按100、200、100买入400,可亏损:46

操作买入金额合理赔数实际赔数卡特尔胜10018901300平100285620荷兰胜100168111

由此可知,平更有利于买家。为什么计算结果和官方赔率区别较大,可能原因是彩票客户的个人喜好,体彩公司设置的输赢概率和本本方法计算的概率有偏差等等!

实例2: 通过计算可知:

比赛可赢率主场合理配数平合理配数客场合理配数加纳Vs乌拉圭0.71671210265韩国Vs葡萄牙0.73609207282赛尔维亚vs瑞士0.70395200404喀麦隆vs巴西0.821296249191

代码实现

#include

#include // 包含头文件

#include

#include

#include

using namespace std;

class worldCupGain

{

public:

worldCupGain()

{

clear();

}

void clear()

{

szCompare = "";

dbHomewinRate = 0.0;

dbNowinRate = 0.0;

dbAwayHomewinRate = 0.0;

}

// 输出比赛结果

void myprintf()

{

double dbSum = (dbHomewinRate + 2*dbNowinRate + dbAwayHomewinRate)*100; // 总赔数

double dbHomewinOriRate = sqrt((dbHomewinRate*100)/dbSum); // 主前赔数

double dbAwayHomewinOriRate = sqrt((dbAwayHomewinRate*100)/dbSum); // 客前赔数

double dbHomewinOfficialRate = dbHomewinOriRate/(dbHomewinOriRate+dbAwayHomewinOriRate); // 主胜官方赔率

double dbAwayHomewinOfficialRate = 1 - dbHomewinOfficialRate; // 客胜官方赔率

// cout<<"主/客场胜官方赔率: "<

// 计算可赢率及各个预期合理赔数

double dbWinRate = (100*dbHomewinRate*dbAwayHomewinOfficialRate*dbAwayHomewinOfficialRate + \

100*dbAwayHomewinRate*dbHomewinOfficialRate*dbHomewinOfficialRate + \

200*dbNowinRate*dbHomewinOfficialRate*dbAwayHomewinOfficialRate)/400; // 可赢率

double dbHome = 100/dbAwayHomewinOfficialRate/dbAwayHomewinOfficialRate; // 主胜合理赔数

double dbNoWin = 50/dbAwayHomewinOfficialRate/dbHomewinOfficialRate; // 平合理赔数

double dbAwayHome = 100/dbHomewinOfficialRate/dbHomewinOfficialRate; // 客胜合理赔数

cout<

}

string szCompare; // 比赛双方

double dbHomewinRate; // 主场赢赔率

double dbNowinRate; // 平赔率

double dbAwayHomewinRate; // 客场赢赔率

};

int main(){

int count = 0;

cout<<"请输入要查验的比赛数量:";

cout<

cin>>count;

vector vecWorldCupGain;

worldCupGain objWorldCupGain;

cout<<"请按右边格式输入数据:比赛双方 主场赢赔率 平赔率 客场赢赔率"<

while(count)

{

objWorldCupGain.clear();

cin>>objWorldCupGain.szCompare>>objWorldCupGain.dbHomewinRate>>objWorldCupGain.dbNowinRate>>objWorldCupGain.dbAwayHomewinRate;

vecWorldCupGain.emplace_back(objWorldCupGain);

count--;

}

cout<

cout<<"比赛双方"<<"\t"<<"可赢率"<<"\t"<<"主胜合理赔数"<<"\t"<<"平合理赔数"<<"\t"<<"客胜合理赔数"<

for(int index = 0; index < vecWorldCupGain.size(); index++)

{

vecWorldCupGain[index].myprintf();

}

system("pause");

return 0;

}

真实数据

下方数据是世界杯16强的比赛:在双方差距较大的情况下,选择选择一方胜/败更有把握,在双方实力相近(图中为双方 >=2)的情况下,选择平更有把握。

对于50%胜率的比赛,选择多少合适呢?这边统计了双方大于等于某个赔数的数据,共6个项目:2、2.1、2.2、2.3、2.4、2.5。为更客观反应比赛结果:获取了足球体彩20220602-20221203的比赛数据,合计2307条,以每条买入100位基础,得出统计列表。

赔数主场胜平胜客场胜总平均胜数据量(条)285.98184.4593.04877402.188.24581.11691.962875712.286.23281.8793.351873932.382.82984.55495.283872512.478.642103.75882.27388952.5104.045113.18246.1368722

数据表明:足彩每购入100,可亏损13。在双方赔率大于2.4的情况下,购入平时一个不错的选择!

#include

#include

#include

#include // 包含头文件

#include

#include

#include

#include

#include

using namespace std;

#define bothWinNum 2.4 // 双方赢球赔数大于等于bothWinNum

class worldCupGain

{

public:

worldCupGain()

{

clear();

}

void clear()

{

szCompare = "";

left = 0;

right = 0;

dbHomewinRate = 0.0;

dbNowinRate = 0.0;

dbAwayHomewinRate = 0.0;

}

// 输出比赛结果

void getObjworldCupGain(string &keep)

{

string tmp = "";

int count = 0;

for(int i = 0; i < keep.size(); i++){

if(keep[i] != ' ' && keep[i] != '\t')

{

tmp += keep[i];

}

else

{

if(tmp.size() < 1) continue;

if(count == 0)

{

szCompare = tmp;

}

else if(count == 1)

{

}

else if(count == 2)

{

string kk = "";

for(int j = 0; j < tmp.size(); j++){

if(tmp[j] != ':'){

kk += tmp[j];

}else{

if(kk.size() < 1) continue;

left = stoi(kk);

kk ="";

}

}

right = stoi(kk);

}

else if(count == 3)

{

dbHomewinRate = stod(tmp);

}

else if(count == 4)

{

dbNowinRate = stod(tmp);

}

else if(count == 5)

{

dbAwayHomewinRate = stod(tmp);

}

count++;

tmp = "";

}

}

}

void mypintf()

{

//cout<

cout<

}

string szCompare; // 比赛双方

int left;

int right;

double dbHomewinRate; // 主场赢赔率

double dbNowinRate; // 平赔率

double dbAwayHomewinRate; // 客场赢赔率

};

int main(){

std::ifstream f{"C:/20220602-20221203basketball.txt", std::ios::binary};

std::stringstream ss;

ss << f.rdbuf();

string data = ss.str();

string keep;

vector vecWorldCupGain;

worldCupGain objWorldCupGain;

for (auto chr : data)

{

if(chr != '\n' && chr != '\r') {

keep += chr;

}

else

{

if(keep.size() < 1) continue;

if(strstr(keep.c_str(), "--") != 0) continue;

if(strstr(keep.c_str(), "取消") != 0) continue;

keep.push_back(' ');

objWorldCupGain.clear();

objWorldCupGain.getObjworldCupGain(keep);

if(objWorldCupGain.dbHomewinRate >=bothWinNum && objWorldCupGain.dbAwayHomewinRate >=bothWinNum)

{

vecWorldCupGain.push_back(objWorldCupGain);

}

//vecWorldCupGain.push_back(objWorldCupGain);

keep = "";

}

}

double sum1 = 0.0;

double sum2 = 0.0;

double sum3 = 0.0;

int num1 = 0, num2 = 0, num3 = 0;

for(int index = 0; index < vecWorldCupGain.size(); index++)

{

if(vecWorldCupGain[index].left > vecWorldCupGain[index].right)

{

num1++;

sum1 += 100*vecWorldCupGain[index].dbHomewinRate;

}

else if(vecWorldCupGain[index].left == vecWorldCupGain[index].right)

{

num2++;

sum2 += 100*vecWorldCupGain[index].dbNowinRate;

}

else if(vecWorldCupGain[index].left < vecWorldCupGain[index].right){

num3++;

sum3 += 100*vecWorldCupGain[index].dbAwayHomewinRate;

}

}

double rate1 = sum1/vecWorldCupGain.size();

double rate2 = sum2/vecWorldCupGain.size();

double rate3 = sum3/vecWorldCupGain.size();

int rate = (sum1+sum2+sum3)/vecWorldCupGain.size()/3;

cout<

cout<

for(int index = 0; index < vecWorldCupGain.size(); index++)

{

vecWorldCupGain[index].mypintf();

}

system("pause");

return 0;

}

数据来源: –足球体彩20220602-20221203basketball.txt比赛数据 合计2307条 格式:主队(让球)vs客队 半场比分 全场比分 胜 平 负 足彩结果

布莱克本(-1)VS伯明翰 2:0 2:1 1.88 3.13 3.50

米堡(-1)VS哈德斯 0:0 0:0 1.54 3.50 4.95

米尔沃尔(+1)VS西布罗姆 1:1 2:1 2.48 3.08 2.45

谢菲联(-1)VS诺维奇 0:2 2:2 2.02 3.35 2.92

桑德兰(+1)VS伯恩利 2:0 2:4 3.15 3.13 2.00

。。。保存不下,省略了。。。

相关推荐

日语翻译软件软件哪个最好用 十款常用日语翻译软件软件排行榜
目睹被绝杀    足球解说员当场猝死
365bet登录地址

目睹被绝杀 足球解说员当场猝死

📅 07-02 👁️ 4198
QQ游戏大厅无法登陆是怎么回事_账号密码和扫码都登录不上去的解决方法
DIOR唇彩系列:專櫃口紅/唇膏/護唇膏/唇釉及唇蜜推薦
LOL庆典女皇艾维尼亚皮肤介绍 助威战队赢皮肤
365bet登录地址

LOL庆典女皇艾维尼亚皮肤介绍 助威战队赢皮肤

📅 07-01 👁️ 9217
第二次崩坏
365sport365中文版

第二次崩坏

📅 06-29 👁️ 8303
历届世界杯半决赛比分历史回顾(从1930年到2018年,看世界杯半决赛的精彩对决)
ipad浏览器怎么收藏网页
365sport365中文版

ipad浏览器怎么收藏网页

📅 06-30 👁️ 4442
10大新材料 1分钟给你捋清楚不会再迷茫
365bet登录地址

10大新材料 1分钟给你捋清楚不会再迷茫

📅 06-28 👁️ 8737