ほな 0043風吹けば名無し2023/08/24(木) 02:41:24.14ID:rxU/KzGH0 コーディングしてくれたニキありがとうな 0044風吹けば名無し2023/08/24(木) 02:41:48.95ID:XukKQLc7d from itertools import permutations
#A〜Iを0〜8にあてはめて考える groupC=set([i for i in range(1,9)]); groupD=set([1,2,5,6,8]); ans=set()
for S in permutations([i for i in range(9)]): #順列を作成 #順列ごとにグループ分け A,B,C,D=set(S[0:3]),set(S[3:7]),S[7],S[8] #条件を満たさないものをcontinue文で弾く if C not in groupC or D not in groupD: continue if len(A&set([0,1,2,3,4,5,7]))!=3: continue if len(B&set([0,1,2,3,4]))!=2: continue if len(B&set([0,1,3]))==0: continue if len(B&set([5,6,7,8]))!=2: continue #数字をソートして重複を除去しつつ、答えをansに格納する ans.add(tuple(sorted(A)+sorted(B)+[C,D]))