過去ログ

「数学」小旅行
私もやってみました。以下のようなプログラムを作っていただきました。
すごいですねぇ。

from itertools import permutations

people = ['トモエ', 'マサル', 'マサヒコ', 'マリコ', 'ツヨシ']
forbidden_pairs = [('トモエ', 'マサル'), ('トモエ', 'マサヒコ'), ('マリコ', 'ツヨシ')]

count = 0
for perm in permutations(people):
valid = True
for pair in forbidden_pairs:
if pair[0] in perm and pair[1] in perm:
idx1 = perm.index(pair[0])
idx2 = perm.index(pair[1])
if abs(idx1 - idx2) == 1:
valid = False
break
if valid:
count += 1

print("条件を満たす5人の並び方の場合の数:", count)

   6月29日(木) 17:29:59     52575

過去問題一覧へ戻る