python
1コード 2def Combinations(n,guestList): 3 allCombL=[] 4 for i in range(2**n): 5 num=i 6 cList=[] 7 for j in range(n): 8 if num%2==1: 9 cList=[guestList[n-1-j]]+cList 10 11 num=num//2 12 allCombL.append(cList) 13 return allCombL 14 15def removeBadCombinations(allCombL,dislikePairs): 16 allGoodCombinations=[] 17 for i in allCombL: 18 good=True 19 for j in dislikePairs: 20 if j[0] in i and j[1] in i: 21 good=False 22 if good: 23 allGoodCombinations.append(i) 24 return allGoodCombinations 25 26def InviteDinner(guestList,dislikePairs): 27 x=Combinations(len(guestList),guestList) 28 y=removeBadCombinations(x,dislikePairs) 29 invite=max(y,key=len) 30 print('Optimum Solution:',invite) 31 32dislikePairs=[[('A',2),('B',6)],[('B',6),('E',3)]] 33guestList=[('A',2),('B',6),('C',3),('D',10),('E',3)] 34InviteDinner(guestList,dislikePairs) 35Inviteweight(guestList,dislikePairs) 36 37問題2 38嫌い同士を走査して、嫌い同士に一切入っていない客を取り除いて、客のリストを縮小し、後でこれらを招待用の組み合わせに追加したいのですがうまくいかないです。 39 40問題3 41dislikePairsの一組を招待するのを許可して、全体として数字が最大になるように招待する方法をがわからないです。 42 43この二つの問題の解き方のヒントあるいは答えがわかる方がいれば教えていただきたいです。 44 45> 引用テキスト 46問題解決のpythonプログラミング第八章練習問題2、3 47
>問題2
>嫌い同士を走査して、嫌い同士に一切入っていない客を取り除いて、客のリストを縮小し、後でこれらを招待用の組み合わせに追加したいのですがうまくいかないです。
うまくいかなかったコードを提示してください。
それとも、「問題2の問題文は『嫌い同士を走査して、嫌い同士に一切入っていない客を取り除いて、客のリストを縮小し、後でこれらを招待用の組み合わせに追加せよ』という文章であったが、その意味がまったく理解できずコードに起こすこともままならないので、この問題文の意味を説明してほしい」ということでしょうか?
問題解決のpythonプログラミング本を持っていない人にも回答を求めるなら、問題の説明をしたほうが良いです。問題が分からないので、答えようがありません。
すみませんでした。お二方の意見を生かして今後もっと相手がわかるように質問していきたいです。一応、できましたのでコードの解決済みのところにのせます。
回答1件
あなたの回答
tips
プレビュー