用 mathematica 编程计算:
- a = Permutations[{1, 1, 1, 1, 2, 2, 2},
- 7]; (*常昊和古力 7 局 4 胜比赛,常昊最终获胜的所有可能过程。1 表示常昊胜,2 表示常昊败。 *)
- LL = Length[a]; (* 1,1,1,1,2,2,2 这七个数字,可能的排列有多少种?包括空集在内 *)
- n = 0; (* 常昊最终获胜的所有可能过程共有多少种? *)
- i = 1; While[i <= LL,
- s = Count[a[[i]], 1]; (* 上述第 i 个排列中,其中的 1 有几个? *)
- L = Length[a[[i]]]; (* 上述第 i 个排列的长度是几,也就是打了几局? *)
- b = a[[i]]; (* 取出上述第 i 个排列 *)
- If[s == 4 && b[[-1]] == 1 && 4 <= L <= 7 , n = n + 1;
- Print[n, "----- ", a[[i]]]];
- (* 共赛4局至7局,常昊都胜4局且最后一局也胜。这些就是常昊最终获胜的所有可能过程。 *)
- i++
- ];
复制代码
程序运行结果:
1----- {1,1,1,1}
2----- {1,1,1,2,1}
3----- {1,1,2,1,1}
4----- {1,2,1,1,1}
5----- {2,1,1,1,1}
6----- {1,1,1,2,2,1}
7----- {1,1,2,1,2,1}
8----- {1,1,2,2,1,1}
9----- {1,2,1,1,2,1}
10----- {1,2,1,2,1,1}
11----- {1,2,2,1,1,1}
12----- {2,1,1,1,2,1}
13----- {2,1,1,2,1,1}
14----- {2,1,2,1,1,1}
15----- {2,2,1,1,1,1}
16----- {1,1,1,2,2,2,1}
17----- {1,1,2,1,2,2,1}
18----- {1,1,2,2,1,2,1}
19----- {1,1,2,2,2,1,1}
20----- {1,2,1,1,2,2,1}
21----- {1,2,1,2,1,2,1}
22----- {1,2,1,2,2,1,1}
23----- {1,2,2,1,1,2,1}
24----- {1,2,2,1,2,1,1}
25----- {1,2,2,2,1,1,1}
26----- {2,1,1,1,2,2,1}
27----- {2,1,1,2,1,2,1}
28----- {2,1,1,2,2,1,1}
29----- {2,1,2,1,1,2,1}
30----- {2,1,2,1,2,1,1}
31----- {2,1,2,2,1,1,1}
32----- {2,2,1,1,1,2,1}
33----- {2,2,1,1,2,1,1}
34----- {2,2,1,2,1,1,1}
35----- {2,2,2,1,1,1,1} |