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

足球世界杯买球赢面计算

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

前言

此文是个人关于世界杯的一些浅显的看法,实际统计结果和计算方法有出入,可能原因: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;

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

  1. 计算总胜赔数:
总胜赔数 = (甲胜赔率 + 乙胜赔率 + 2*平赔率)*100
  1. 分别计算甲乙的官方输赢比:
 甲前赔率 = sqrt(甲胜赔数/总胜赔数);乙前赔率 = sqrt(乙胜赔数/总胜赔数);甲的官方赔率 =  甲前赔数/( 甲前赔数+ 乙前赔数);乙的官方赔率 =  乙前赔数/( 甲前赔数+ 乙前赔数);
  1. 在假设按上面规则买了400的前提下,结合甲乙的官方赔率,推测输赢概率与官方赔率刚好相反,反算可赢率(其中保本为1):
甲胜可赢数量= 100*甲胜赔率* 乙的官方赔率^2;
乙胜可赢数量= 100*乙胜赔率* 甲的官方赔率^2;
平可赢数量  = 200*平赔率* 甲的官方赔率* 乙的官方赔率;
可赢率   = (甲胜可赢数量+乙胜可赢数量+平可赢数量)/400;

实际计算用例:

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

实例1:卡特尔VS荷兰
卡特尔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:
20221202比赛赔率
通过计算可知:

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

代码实现

#include<iostream>
#include <iomanip> // 包含头文件
#include<algorithm>
#include<cmath>
#include<vector>
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<<"主/客场胜官方赔率: "<<dbHomewinOfficialRate<<" "<<dbAwayHomewinOfficialRate<<endl;// 计算可赢率及各个预期合理赔数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<<szCompare<<"\t"<<dbWinRate<<"\t"<<dbHome<<"\t"<<dbNoWin<<"\t"<<dbAwayHome<<endl;}string szCompare;           // 比赛双方double dbHomewinRate;       // 主场赢赔率double dbNowinRate;         // 平赔率double dbAwayHomewinRate;   // 客场赢赔率
};int main(){int count = 0;cout<<"请输入要查验的比赛数量:";cout<<endl;cin>>count;vector<worldCupGain> vecWorldCupGain;worldCupGain objWorldCupGain;cout<<"请按右边格式输入数据:比赛双方 主场赢赔率 平赔率 客场赢赔率"<<endl;while(count){objWorldCupGain.clear();cin>>objWorldCupGain.szCompare>>objWorldCupGain.dbHomewinRate>>objWorldCupGain.dbNowinRate>>objWorldCupGain.dbAwayHomewinRate;vecWorldCupGain.emplace_back(objWorldCupGain);count--;}cout<<endl<<endl;cout<<"比赛双方"<<"\t"<<"可赢率"<<"\t"<<"主胜合理赔数"<<"\t"<<"平合理赔数"<<"\t"<<"客胜合理赔数"<<endl;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.0487740
2.188.24581.11691.96287571
2.286.23281.8793.35187393
2.382.82984.55495.28387251
2.478.642103.75882.2738895
2.5104.045113.18246.1368722

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

#include<iostream>
#include<fstream>
#include<sstream>
#include <iomanip> // 包含头文件
#include<algorithm>
#include<cmath>
#include<string>
#include<string.h>
#include<vector>
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<<szCompare<<"\t"<<left<<":"<<right<<"\t"<<dbHomewinRate<<"\t"<<dbNowinRate<<"\t"<<dbAwayHomewinRate<<endl;cout<<left<<":"<<right<<"\t"<<dbHomewinRate<<"\t"<<dbNowinRate<<"\t"<<dbAwayHomewinRate<<endl;}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<worldCupGain> 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<<num1<<" "<<num2<<" "<<num3<<endl;cout<<vecWorldCupGain.size()<<"对应的赔率为:"<<rate1<<" "<<rate2<<" "<<rate3<<" "<<rate<<endl;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
。。。保存不下,省略了。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29018.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

德昂对话ChatGpt:如何做好BI行业的推广

|| 导语 企业级BI软件&#xff0c;一般面向企业内部的IT和专业分析人员&#xff0c;或者专业的服务团队&#xff0c;其营销模式有别于面向个人的软件。 好的营销经理难寻&#xff0c;企业级BI软件产品的营销经理更是凤毛麟角。到底是内部培养&#xff0c;还是外部招聘? 看了…

Chatgpt3.5 在python上的简单应用

# 下面是python_LLM的环境变量&#xff0c;要引用的时候直接复制就行了 import openai import pandas as pd openai.api_key"sk_GbP"#这里填API #定义好询问函数 def get_completion(prompt, model"gpt-3.5-turbo"):messages [{"role": "u…

文本AI3.5的安装和基本用法:轻松掌握

PC端 1、首先打开Edge浏览器&#xff0c;这个浏览器是windows系统自带的 2、打开扩展管理->查找新的扩展 查找新的扩展 3、输入&#xff1a;WeTAb 进行搜索->安装 4、简单的使用 这里需要注意有时候&#xff0c;你询问AI问题的时候会提示你的询问次数已达到上限。解决…

如何防御ChatGPT们滥用同形异义词域名

Identity Digital域名 注册专场部分域名直降120元 点击直达 人工智能&#xff08;AI&#xff09;聊天机器人在全球范围内风靡&#xff0c;2023年将成为越来越多人关注的技术。OpenAI于2022年的最后一个季度发布了ChatGPT&#xff0c;这促使许多公司、组织和个人进入这一领域。甚…

Unity虚拟现实插件VRTK3.3使用教程三:VR场景交互-触碰,抓取,使用

vrtk中的交互-触碰,抓取,使用 参考:VRTK - 2.场景物体的交互&#xff1a;触碰&#xff0c;抓取&#xff0c;使用 - 简书 已经能在场景中移动了,接下来肯定想在虚拟场景中与物体互动吧! 虚拟场景互动主要包括触碰,抓取,使用三种方式. Touch 必要条件: 被接触的物体必须有C…

Avatar和虚拟场景如何影响用户VR社交行为

对于VR社交来讲&#xff0c;虚拟场景&#xff08;社交环境&#xff09;、Avatar&#xff08;虚拟化身&#xff09;是两个重要的元素&#xff0c;一个代表了人们在VR中互动的空间&#xff0c;而另一个则代表他们在这个空间中所扮演的角色。现阶段&#xff0c;Avatar有多种形态&a…

Unity+SteamVR开发——交互

一、前言 本文使用两个工具为Unity2018.4.26和SteamVR2.6.1&#xff0c;SteamVR2.6.1相比之前的版本有了很大的改变&#xff0c;其中在交互上有了很大的提升&#xff0c;SteamVR2.6.1上给出的案例中提供了抛射物体、线性驱动、环形驱动以及复杂的射箭操作等。尽管给出了诸多的交…

Unity-SteamVR物体交互

谈到Unity VR开发&#xff0c;即使是初学者也会听过SteamVR或者HTC VIVE&#xff0c;这款设备是目前在国内能够方便买到且在使用上不错的一款设备。其实SteamVR是集成在Steam里的一个VR插件&#xff0c;而HTC是硬件设备&#xff0c;运行时用到SteamVR这个插件&#xff08;也是H…

Unity VR游戏开发干货教程:VR中的用户界面

在设计VR应用的用户界面时要考虑很多因素&#xff0c;而这些因素对于传统应用或游戏的界面设计可能都不是事儿。下面我们会看看作为一个VR开发者在设计用户界面时可能会遇到的一些问题&#xff0c;以及跟硬件相关的一些东西。UI分辨率和画质目前DK2的分辨率是1920*1080(单目是9…

【SR Works】使用HTC Vive Pro结合SteamVR在Unity中制作MR内容

HTC Vive Pro有两个前置RGB摄像头&#xff0c;官方出了一套SR Works SDK来借助这两个摄像头实现MR功能。 本篇的目标是&#xff0c;成功运行官方的MR示例&#xff0c;并结合SteamVR和SR Works SDK在Unity中实现MR项目的开发准备 1.下载SRWorks插件 下载地址&#xff1a; Late…

公司普通启动VR/AR软件开发虚拟场景游戏

随着元宇宙技术的不断革新&#xff0c;VR作为一种新兴技术&#xff0c;正在迅速普及。VR软件开发技术将用户沉浸到虚拟世界中&#xff0c;让人们可以身临其境地体验一些事物&#xff0c;如元宇宙游戏、商圈、展会、旅游等。而VR虚拟场景的开发&#xff0c;则是实现这一目标的重…

《SteamVR2.2.0交互系统(Interaction System)》(Yanlz+Unity+XR+VR+AR+MR+Valve+Teleport+Skeleton+立钻哥哥++ok++)

《SteamVR2.2.0快速入门》 《SteamVR2.2.0快速入门》 版本 作者 参与者 完成日期 备注 SteamVR2.2.0_Interaction_V01_1.0 严立钻 2019.04.11 ##《SteamVR2.2.0快速入门》发布说明&#xff1a; “SteamVR2.2.0快速入门”&#xff1a;是对“Stea…

怎么才能把短视频中文配音变成英文配音?

中文视频的类型 首先&#xff0c;将中文视频翻译成改为英文的视频&#xff0c;这是一个比较复杂的过程&#xff0c; 这里面还涉及到几种情况&#xff0c;下面简单罗列下&#xff1a; 第一种&#xff1a;带中文解说和中文字幕的视频&#xff1b; 第二种&#xff1a;只有中文解说…

Go Web下gin框架的模板渲染

〇、前言 Gin框架是一个用于构建Web应用程序的轻量级Web框架&#xff0c;使用Go语言开发。它具有高性能、低内存占用和快速路由匹配的特点&#xff0c;旨在提供简单、快速的方式来开发可扩展的Web应用程序。 Gin框架的设计目标是保持简单和易于使用&#xff0c;同时提供足够的…

【VINS-Fusion】学习笔记

配置文件-config\euroc\euroc_stereo_imu_config.yaml %YAML:1.0#common parameters #support: 1 imu 1 cam; 1 imu 2 cam: 2 cam; #1个mui&#xff0c;双目相机 imu: 1 num_of_cam: 2 imu_topic: "/imu0" image0_topic: "/cam0/image_raw" im…

Qt6教程之三(3) QtWedget自定义控件

在之前的博客中&#xff0c;我们使用的控件都是Qt官方提供的&#xff0c;对于控件的特性也只能被动地接受&#xff0c;为了打破这种束缚&#xff0c;可以按照自己的想法来定义控件。 不过自定义控件必须遵守Qt官方的一套自定义控件规则&#xff0c;在规则之下我们就可以定义属…

基于TextRank+Seq2Seq+Pyqt5文章摘要标题关键词辅助生成系统(含全部python工程源码)+训练数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境TextRank环境TensorFlow环境PyQt5及Qt Designer运行环境 模块实现1. 数据预处理2. 抽取摘要3. 模型搭建与编译4. 模型训练与保存5. 图形化界面的开发6. 应用封装 系统测试1. 训练困惑度2. 测试效果3. 模型应用 工…

基于langchain-chatglm本地知识库得部署

项目的技术组成 LLM模型 大型语言模型&#xff08;LLM&#xff0c;是large language model&#xff09;是一种人工智能模型&#xff0c;旨在理解和生成人类语言。它们通过在大量文本数据上进行训练&#xff0c;能够执行多种任务&#xff0c;包括文本总结、翻译、情感分析等。L…

电信卡流量套餐超40G后,该如何解除网速限制?

在和朋友开视频的时候&#xff0c;朋友那边忽然网络中断了&#xff0c;过了会他给我发了一张图片过来&#xff0c;图片如下&#xff1a; 朋友的手机是电信的&#xff0c; 然后我们就在网上查各种解除限制的信息&#xff0c;首先我们按照短信上的提示发送SWFJ到10001&#xff0c…

流量控制与RateLimiter

一背景 如何提高系统的稳定性&#xff0c;简单来说除了加机器外就是服务降级、限流。加机器就是常说的分布式&#xff0c;从整个架构的稳定性角度看&#xff0c;一般SOA每个接口的所能提供的单位时间服务能力是有上限。假如超过服务能力&#xff0c;一般会造成整个接口服务停顿…