mathe 发表于 2014-12-18 22:20:20

公平竞赛问题

现在有一个挑战项目,每次一个选手挑战,过关概率为p.选手们按一定顺序出场挑战,直到某个选手过关,游戏结束。(选手可以多次出场)
现在假设只有三个选手,请问该如何安排出场顺序,使得三人赢得游戏的概率尽量接近。

gxqcn 发表于 2014-12-25 20:16:57

每三局,让选手抓阄或猜拳决定排队顺序,是否公平?

mathe 发表于 2014-12-30 17:38:52

要求选手出场顺序事先确定好

fungarwai 发表于 2014-12-30 20:17:27

我觉得最公平应该是没有的,但倒是可以考虑他们概率和的方差最小使得比赛更公平
p=0.1
   3   1   2   2   3   1   2   3   1   1   2   1   3   3   2
p=0.9
   1   2   3   3   3   2   3   3   3   2   3   2   3   3   2
概率太高的话显然是第一个会非常有优势

zhouguang 发表于 2014-12-31 11:29:29

我感觉对于n个选手的情形,只要p不大于1/n,就能实现公平。

zhouguang 发表于 2014-12-31 12:48:24

比方说,对于n=3,p=1/3的特例,第一个选手去试下,这一次就恰好用尽了他的全部机会,如果他失败了,就只有剩下的两个选手可以有过关的机会了。
于是这个特例就等效于如下问题:
如何将无穷数列“2/3、(2/3)^2、(2/3)^3、(2/3)^4、……、(2/3)^k、……”平均分为两部分,即求一个正整数集合{k},使sum((2/3)^k)等于1。
这个问题在直觉上是有解的,但是结果是不容易构造的。

zhouguang 发表于 2014-12-31 14:06:50

对于p不大于1/n的情形,只要每次都让现有已获得通关几率最小的那个选手去闯关就可以了。(这是一个方案,但不是唯一或最佳的方案。)

l4m2 发表于 2015-1-5 17:45:40

buchong补充一个问题:顺序有几种可能性?

zeroieme 发表于 2015-1-6 00:46:04

第n场发生的概率是$(1-p)^(n-1)$即前面n-1场都失败了。由此,在第n场胜利的概率修正为$p*(1-p)^(n-1)$
假如A选手分配场次为$(x_1、x_2、……)$场,那么他胜利的总概率是$p*sum((1-p)^(x_i -1))$ 令这个总概率接近1/3 。因为假设有三个选手,同样B选手的$(y_1、y_2、……)$及C选手$(z_1、z_2、……)$也要接近1/3

所以$p>1/3$是明显不公平的。如果固定数字p可以考虑贪婪算法,是否存在循环分配

zeroieme 发表于 2015-1-6 15:47:24

本帖最后由 zeroieme 于 2015-1-6 15:57 编辑

先放段代码
Module[{a={1},b={2},c={3},p=1/10,ap,bp,cp},
Do[
ap=Total;
bp=Total;
cp=Total;
If,AppendTo,If,AppendTo,AppendTo]];
,{i,4,600}];
Print[{a,b,c}];
Print(*检验长度,当p逼近1/3,abc不等长,下行转置命令出错*);
Print][]&/@Transpose[{a,b,c}]];
]
页: [1] 2
查看完整版本: 公平竞赛问题