質問するログイン新規登録

質問編集履歴

1

プログラムの追加

2020/06/05 07:34

投稿

Lycoris
Lycoris

スコア1

title CHANGED
File without changes
body CHANGED
@@ -1,1 +1,112 @@
1
- 8人トーナメントでの全ての組み合わせを出力したいのですが、いいアイデアが思いつきません。順列から徐々に減らしていこうとも思いましたが、非効率だなと思いました。総数は315であることはわかっています。pythonかc言語で回答してくださると嬉しいです。よろしくお願いします。
1
+ 8人トーナメントでの全ての組み合わせを出力したいのですが、いいアイデアが思いつきません。順列から徐々に減らしていこうとも思いましたが、非効率だなと思いました。総数は315であることはわかっています。pythonかc言語で回答してくださると嬉しいです。よろしくお願いします。
2
+ 追記
3
+ ```python
4
+ import itertools
5
+ i=0
6
+ list2=[]
7
+ list3=[]
8
+ list4=[]
9
+ list5=[]
10
+ list6=[]
11
+ l = [1,2,3,4]
12
+ list1=list(itertools.permutations(l,4))
13
+ #print(list1)
14
+ print()
15
+
16
+ for i in range(24):
17
+ list2+=[[list1[i][:2],list1[i][2:4]]]
18
+ #print(list2)
19
+ print()
20
+
21
+ for k in range(24):
22
+ for l in range(2):
23
+ list3+=sorted(list2[k][l])
24
+ #print(list3)
25
+ print()
26
+
27
+ for n in range(0,24*4-3,4):
28
+ list4+=[((list3[n],list3[n+1]),(list3[n+2],list3[n+3]))]
29
+ #print(list4)
30
+ print()
31
+
32
+ for m in range(24):
33
+ list5+=sorted(list4[m])
34
+ #print(list5)
35
+ print()
36
+
37
+ for o in range(0,45,2):
38
+ list6+=[(list5[o],list5[o+1])]
39
+ #print(list6)
40
+ set(list6)
41
+ ```
42
+ ```python
43
+ import itertools
44
+ list2=[]
45
+ list3=[]
46
+ list4=[]
47
+ list5=[]
48
+ list6=[]
49
+ list7=[]
50
+ list8=[]
51
+ list9=[]
52
+ list10=[]
53
+ list11=[]
54
+ list12=[]
55
+ a = [1,2,3,4,5,6,7,8]
56
+ list1=list(itertools.permutations(a,8))
57
+ #print(list1)
58
+ print()
59
+
60
+ for i in range(40320):
61
+ list2+=[[list1[i][:4],list1[i][4:8]]]
62
+ #print(list2)
63
+ print()
64
+
65
+ for k in range(40320):
66
+ for l in range(2):
67
+ list3+=[[list2[k][l][:2],list2[k][l][2:4]]]
68
+ #print(list3)
69
+
70
+ for s in range(80640):
71
+ for t in range(2):
72
+ list4+=sorted(list3[s][t])
73
+ #print(list4)
74
+
75
+ for x in range(0,40320*8-7,8):
76
+ list5+=[([(list4[x],list4[x+1]),(list4[x+2],list4[x+3])],[(list4[x+4],list4[x+5]),(list4[x+6],list4[x+7])])]
77
+ #print(list5)
78
+
79
+ for p in range(40320):
80
+ for q in range(2):
81
+ list6+=sorted(list5[p][q])
82
+ #print(list6)
83
+
84
+ for g in range(0,40320*4-3,4):
85
+ list7+=[(list6[g],list6[g+1]),(list6[g+2],list6[g+3])]
86
+ #print(list7)
87
+
88
+ for s in range(40320*2):
89
+ for t in range(2):
90
+ for u in range(2):
91
+ list8+=[list7[s][t][u]]
92
+ #print(list8)
93
+
94
+ for y in range(0,40320*8-7,8):
95
+ list9+=[((list8[y],list8[y+1],list8[y+2],list8[y+3]),(list8[y+4],list8[y+5],list8[y+6],list8[y+7]))]
96
+ #print(list9)
97
+
98
+ for h in range(40320):
99
+ list10+=sorted(list9[h])
100
+ #print(list10)
101
+
102
+ for s in range(40320*2):
103
+ for t in range(4):
104
+ list11+=[list10[s][t]]
105
+ #print(list11)
106
+
107
+ for z in range(0,40320*8-7,8):
108
+ list12+=[((list11[z],list11[z+1]),(list11[z+2],list11[z+3]),(list11[z+4],list11[z+5]),(list11[z+6],list11[z+7]))]
109
+ #print(list12)
110
+ set(list12)
111
+ ```
112
+ 一応プログラムとしては4人の場合を考えて、無理やり8人に変えたのを製作しています。しかし、あまりにも無理やりで汚すぎたので、投稿してみました。