一道有趣决策题-赌徒的下注策略
(2017-04-02 09:22:01)
标签:
赌徒神仙下注策略对策论 |
网上看到一道数学题,是这样的:
最小收益
最大收益
固定比率50%
23066/9
25600
固定比率90%
23777/7
129075/4
可变比率
5120
126298/7
第一次收益
s11=100-100*r1
第二次收益
s12=2*s11=2*( 100-100*r1)
第一次收益
s21=100-100*r1+2*100*r1
第二次收益
s22=s21
第一次收益
s11=100-100*r1
第二次收益
s12=2*s11
第 三次收益
s13=2*s12
第一次收益
s21=100-100*r1+2*100*r1
第二次收益
s22=s21-s21*r2
第 三次收益
s23=2*s22
第一次收益
s31=100-100*r1+2*100*r1
第二次收益
s32=s31-s31*r2+2*s31*r2
第 三次收益
s33=s32
z(1,i)=a0;
for i=1:10
if i<=m
x(1,i)=u(1,i)*z(1,i);
%xx(i)=u(1,i)*z(1,i)
else
x(1,i)=z(1,i);
end
if m==10 && i==m
x(1,i)=0;
end
z(1,i+1)=z(1,i)-x(1,i)+2*x(1,i)*y(m,i);
end
w(1,m)=z(1,i+1);
%w(1,m)
for i=1:10
if i>m
w(1,m)=subs(w(1,m),u(1,i),1);
end
end
%w(1,m)
有一个赌徒,去赌场玩猜单双,猜中所押翻倍,猜错全赔。他带100元,进赌场后遇到神仙,神仙可提前告诉他结果,包赢。如果神仙一共告诉他10次结果,其中9次真,1次假(并不知道第几次告诉是假,但可以确定有且只有一次是假)。请问,赌徒最后最少能赢多少钱?
这问题很有趣,所以记在这里。
这大概是一道决策论或博弈论方面的问题,而我没玩过这些,一开始还没有认识到问题的复杂性,猜想大概以百分之50%,可以获得高收益,结果发现不对,就尝试用两种方法,4中策略来下注:
1.以固定比率10%下注
2.以固定比率50%下注
3.以固定比率90%下注
4.以可变比率9/10、
8/9 、7/8 、6/7、 5/6、 4/5、 3/4 、2/3、 1/2 、 0
获得结果如下(含本金):
固定比率10%
9196/39
46080
至此发现问题比我想象的要复杂,它是要求最坏情况下的最好结果,即求max(min(f)),先考虑简单情况:
1.共下注两次的策略(这是一个随机性问题,仅下注一次时,应该无意义)
设下注比率为r,收益为s
1.1
第一次为假,第二次为真 ,则
1.2 第一次为真 ,第二次为假,则
当 s22=s12时,得到问题答案,经过计算得r1=1/3
2.共下注3次的策略设下注比率为r,收益为s
2.1
第一次为假,第二次为真,第三次为真,则
2.2 第一次为真 ,第二次为假,第三次为真,则
2.3 第一次为真 ,第二次为真,第三次为假,则
当
s33=s23=s13时,得到问题答案,经过计算得r1=1/3,r2=1/2
将以上原理推广至10次下注,经过蛮力计算,则可得:
下注比率:9/11, 4/5,
7/9, 3/4,
5/7, 2/3,
3/5, 1/2,
1/3, 0
其实,最后一个0没意义,用不着。
至少收益:102400/11
这时我们可以获得一个通式,设总共下注次数为n,则
至少收益:100*2^n/(n+1)
下注比率依次为:(n-1)/(n+1)、(n-2)/n、(n-3)/(n-1)、......
由于没玩对策论之类的数学,这可能不是一个好办法,但至少可以解决问题。
最后我将解此问题M代码附在下面。
clc;close all;clear all;
tic;
%n=9;
syms u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 a0
u(1,1)=u1;
u(1,2)=u2;
u(1,3)=u3;
u(1,4)=u4;
u(1,5)=u5;
u(1,6)=u6;
u(1,7)=u7;
u(1,8)=u8;
u(1,9)=u9;
u(1,10)=u10;
t1=ones(10,10);
t2=eye(10);
y=t1-t2;
%x=zeros(1,10);
z0=100;
for i=1:11
end
%z(1,1)=a0
z(1,1)=subs(z(1,1),a0,z0);
%z=zeros(1,10)
for m=1:10
end
for m=1:10
end
A=solve(w(1,1)-w(1,2),w(1,1)-w(1,3),w(1,1)-w(1,4),w(1,1)-w(1,5),w(1,1)-w(1,6),w(1,1)-w(1,7),w(1,1)-w(1,8),w(1,1)-w(1,9),w(1,1)-w(1,10));
u(1,1)=A.u1;
u(1,2)=A.u2;
u(1,3)=A.u3;
u(1,4)=A.u4;
u(1,5)=A.u5;
u(1,6)=A.u6;
u(1,7)=A.u7;
u(1,8)=A.u8;
u(1,9)=A.u9;
u(1,10)=subs(u(1,10),0/2);
r=u
sum=subs(w(1,1),u1,u(1,1))
toc;
前一篇:用MATLAB玩控制-结构辨识1
后一篇:用MATLAB获取新浪股票数据