
理解题目意思:就是说这n家公司分别给出的三种赔率是一定的,但是你可用决定你去哪家公司投钱,投哪种情况,当满足一定数量关系的时候就一定不会赔钱。
预备知识
在博彩场景下,套利原理基于数学期望和概率的概念,下面从数学计算和投注策略的角度,为你详细解释为什么当赔率的倒数之和小于 1 时存在必赢策略:
1. 赔率与收益的基本关系
假设我们对一场足球比赛进行投注,有三个可能的结果:主队胜、平局、主队负,对应的赔率分别为 \(w\)(win)、\(d\)(draw)、\(l\)(lose) 。赔率的含义是,如果投注金额为 \(1\) 元,且预测结果正确,将获得的总金额(本金 + 盈利)。例如赔率 \(w = 1.5\) ,投注 \(1\) 元猜对主队胜,最终会得到 \(1.5\) 元,盈利 \(0.5\) 元。
2. 投注策略构建
设我们在主队胜、平局、主队负上分别投注的金额为 \(x\)、\(y\)、\(z\),且总投注金额 \(M = x + y + z\) 。
- 如果比赛结果是主队胜,我们获得的收益是 \(xw\) ,净盈利为 \(P_1 = xw - M\) 。
- 如果比赛结果是平局,我们获得的收益是 \(yd\) ,净盈利为 \(P_2 = yd - M\) 。
- 如果比赛结果是主队负,我们获得的收益是 \(zl\) ,净盈利为 \(P_3 = zl - M\) 。
3. 从数学角度推导存在套利的条件
我们希望无论比赛结果如何,都能保证盈利,也就是 \(P_1 > 0\),\(P_2 > 0\),\(P_3 > 0\) 。
从另一个角度看,我们可以假设投注比例,设投注在主队胜、平、负上的资金占总投注金额的比例分别为 \(p = \frac{x}{M}\),\(q = \frac{y}{M}\),\(r = \frac{z}{M}\) ,且 \(p + q + r = 1\) 。
- 当主队胜时,盈利 \(P_1 = M(pw - 1)\) ,要使 \(P_1>0\),则 \(pw > 1\),即 \(p > \frac{1}{w}\) 。
- 当平局时,盈利 \(P_2 = M(qd - 1)\) ,要使 \(P_2>0\),则 \(qd > 1\),即 \(q > \frac{1}{d}\) 。
- 当主队负时,盈利 \(P_3 = M(rl - 1)\) ,要使 \(P_3>0\),则 \(rl > 1\),即 \(r > \frac{1}{l}\) 。
如果同时满足 \(p > \frac{1}{w}\),\(q > \frac{1}{d}\),\(r > \frac{1}{l}\) ,并且 \(p + q + r = 1\) ,那么就需要 \(\frac{1}{w} + \frac{1}{d} + \frac{1}{l} < 1\) 。因为只有当 \(\frac{1}{w} + \frac{1}{d} + \frac{1}{l} < 1\) 时,才能够找到合适的正数 \(p\)、\(q\)、\(r\) 满足上述条件,从而无论比赛结果是胜、平还是负,都能保证盈利。
4. 举例说明
假设一家博彩公司给出某场比赛主队胜赔率 \(w = 3\),平局赔率 \(d = 3\),主队负赔率 \(l = 3\) ,此时 \(\frac{1}{w} + \frac{1}{d} + \frac{1}{l} = \frac{1}{3} + \frac{1}{3} + \frac{1}{3} = 1\) ,不管怎么分配投注金额,都无法保证必赢。
但如果 \(w = 4\),\(d = 4\),\(l = 4\) ,则 \(\frac{1}{w} + \frac{1}{d} + \frac{1}{l} = \frac{1}{4} + \frac{1}{4} + \frac{1}{4} = \frac{3}{4} < 1\) 。我们可以选择在主队胜、平、负上分别投注总金额的 \(\frac{1}{3}\) ,即 \(p = q = r=\frac{1}{3}\) 。
- 若主队胜,收益为 \(\frac{1}{3}Ã4 = \frac{4}{3}\) ,盈利为 \(\frac{4}{3}- 1 = \frac{1}{3}\) 。
- 若平局,收益为 \(\frac{1}{3}Ã4 = \frac{4}{3}\) ,盈利为 \(\frac{4}{3}- 1 = \frac{1}{3}\) 。
- 若主队负,收益为 \(\frac{1}{3}Ã4 = \frac{4}{3}\) ,盈利为 \(\frac{4}{3}- 1 = \frac{1}{3}\) 。
所以,在博彩中,当 \(\frac{1}{w} + \frac{1}{d} + \frac{1}{l} < 1\) 时,就存在必赢的投注策略,这就是博彩套利原理的本质。
#include <stdio.h>
int main()
{
int T,n;
double w,d,l,Maxw,Maxd,Maxl;
scanf("%d",&T);
while (T--)
{
Maxw = Maxd = Maxl = 0;
scanf("%d",&n);
for (int i = 0; i < n; i ++)
{
scanf("%lf %lf %lf",&w,&d,&l);
if (w > Maxw)
Maxw = w;
if (d > Maxd)
Maxd = d;
if (l > Maxl)
Maxl = l;
}
if (1/Maxw + 1/Maxd + 1/Maxl < 1)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
1017

被折叠的 条评论
为什么被折叠?



