…(我是标题)

今天网球老师让我们打比赛, 10人分为A,B两个小组, 对打, 相当于每个人都和对方5个人都来一轮, 5轮3胜出线, 采用的规则如下

A队 B队
A1 B1
A2 B2
A3 B3
A4 B4
A5 B5
A队 B队
A1 B5
A2 B1
A3 B2
A4 B3
A5 B4
A队 B队
A1 B4
A2 B5
A3 B1
A4 B2
A5 B3
A队 B队
A1 B3
A2 B4
A3 B5
A4 B1
A5 B2
A队 B队
A1 B2
A2 B3
A3 B4
A4 B5
A5 B1

PS: 我是A2..
(貌似 markdown 的表格不能一行放多个…感觉这样放有点长..不过在去做表有点麻烦, 先这样看着吧)

比赛顺序就是这样, 一共比25场,每场先4球为胜(今天打了15场, 我赢(雾)了两场输一场(雾))

然后听到这个规则有点奇怪这个方法最后10个人能选几个人出来, 感觉不能每个队伍选出5个吧,就暴力解了一下.

把10个人每个人赢得次数放在一维数组, 满足下以下关系就可以了$$x_1+x_2+x_3+x_4+x_5=25-x_6-x_7-x_8-x9-x{10}$$

$$x_1+x_2+x_3+x_4+x_5+x_6+x_7+x_8+x9+x{10}=9$$

(貌似latex公式打上来不能正常显示,,,,,有点问题啊…下次再配置下)

下面开始

看一下从0-5中枚举10个一共有多少种..

IN[6]:=Length[Tuples[{0, 1, 2, 3, 4, 5}, 10]]
OUT[6]:=60466176

从0-5中挑出10数枚举一共6000万多组…感觉电脑跑不动, 不过只是为了检验老师的方法不会正确产生一般的胜出人数, 这里拿6人做了一个检验

In[13]:=tups[x_] := Tuples[Table[i, {i, 0, x/2}], x]
ans[x_] := 
 With[{a = tups[x]}, 
  Select[a, #[[1]] + #[[2]] + #[[3]] == 9 - #[[4]] - #[[5]] && 
     Total[#] == 9 &]] 
a = (Total[Table[If[#[[i]] >= 2, 1, 0], {i, 1, 6}]] & /@ ans[6])
OUT[13]:={3, 3, 3, 3, 3, 4, 4, 3, 4, 3, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, \
2, 3, 3, 2, 3, 2, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 3, 3, \
3, 3, 3, 2, 3, 3, 4, 4, 3, 4, 3, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 4, 4, \
3, 4, 3, 4, 4, 4, 4, 4, 3, 4, 3, 4, 3, 3, 3, 3, 3, 4, 3, 4, 3, 3, 3, \
3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 3, 3, 3, 3, 3, 2, 3, 3, 4, \
3, 3, 3, 3, 3, 4, 3, 4, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3}

居然有的能有四个人出界…貌似这里不能保证6人比赛只有三天出界

count3 = Count[a, 3];
count4 = Count[a, 4];
 PieChart[{count3, count4, count5}, 
 ChartLegends -> {"3人出界", "4人出界"}]

统计一下

不过四人出界的情况相对还是比较少的.当然说明网球老师这个比赛方法还是不太严谨的

挑出来具体每个人赢的情况看看

In[29]:=pos = Flatten@Position[a, 4]
ans[6][[#]] & /@ pos
Out[30]:={{0, 2, 2, 2, 3, 0}, {0, 2, 2, 3, 2, 0}, {0, 2, 3, 2, 2, 0}, {0, 3, 2,
   2, 2, 0}, {1, 2, 2, 2, 2, 0}, {2, 0, 2, 2, 3, 0}, {2, 0, 2, 3, 2, 
  0}, {2, 0, 3, 2, 2, 0}, {2, 1, 2, 2, 2, 0}, {2, 2, 0, 2, 3, 0}, {2, 
  2, 0, 3, 2, 0}, {2, 2, 1, 2, 2, 0}, {2, 2, 2, 0, 3, 0}, {2, 2, 2, 1,
   2, 0}, {2, 2, 2, 2, 1, 0}, {2, 2, 2, 3, 0, 0}, {2, 2, 3, 0, 2, 
  0}, {2, 2, 3, 2, 0, 0}, {2, 3, 0, 2, 2, 0}, {2, 3, 2, 0, 2, 0}, {2, 
  3, 2, 2, 0, 0}, {3, 0, 2, 2, 2, 0}, {3, 2, 0, 2, 2, 0}, {3, 2, 2, 0,
   2, 0}, {3, 2, 2, 2, 0, 0}}

6个人这样比赛能有4个人出线哈哈….

看看每个小组在这四个人中能占多少呢..

a = {{0, 2, 2, 2, 3, 0}, {0, 2, 2, 3, 2, 0}, {0, 2, 3, 2, 2, 0}, {0, 
    3, 2, 2, 2, 0}, {1, 2, 2, 2, 2, 0}, {2, 0, 2, 2, 3, 0}, {2, 0, 2, 
    3, 2, 0}, {2, 0, 3, 2, 2, 0}, {2, 1, 2, 2, 2, 0}, {2, 2, 0, 2, 3, 
    0}, {2, 2, 0, 3, 2, 0}, {2, 2, 1, 2, 2, 0}, {2, 2, 2, 0, 3, 
    0}, {2, 2, 2, 1, 2, 0}, {2, 2, 2, 2, 1, 0}, {2, 2, 2, 3, 0, 
    0}, {2, 2, 3, 0, 2, 0}, {2, 2, 3, 2, 0, 0}, {2, 3, 0, 2, 2, 
    0}, {2, 3, 2, 0, 2, 0}, {2, 3, 2, 2, 0, 0}, {3, 0, 2, 2, 2, 
    0}, {3, 2, 0, 2, 2, 0}, {3, 2, 2, 0, 2, 0}, {3, 2, 2, 2, 0, 0}};
c = {Table[If[#[[i]] >= 2, 1, 0], {i, 1, 3}], 
    Table[If[#[[i]] >= 2, 1, 0], {i, 4, 6}]} & /@ a
d = Total /@ Flatten[c, 1];
e = Table[{d[[i]], d[[i + 1]]}, {i, 1, Length[d] - 1}];
two = Count[e, {2, 2}];
three = Length[e] - two;
PieChart[{two, three}, ChartLegends -> {"出线2-2", "出线人数3-1"}]

貌似2-2与3-1的可能性不一样..

不过为了让每个人都比赛一次也不能说指望老师提前做一下计算保证每组出线一半人…

话外

最近好像感冒了….

对了今天github timeline差点断了..还好之前在hexo留了点东西, 打开电脑发现11:59..赶紧push, 赶在结束前push上去了…哈哈


强行绿…

今天就这样水过去了(雾…