質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1035閲覧

Python組み合わせの最適化

nnnnnnaa

総合スコア1

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/02/09 10:20

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プログラミング第八章練習問題23 47

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/02/09 11:04

>問題2 >嫌い同士を走査して、嫌い同士に一切入っていない客を取り除いて、客のリストを縮小し、後でこれらを招待用の組み合わせに追加したいのですがうまくいかないです。 うまくいかなかったコードを提示してください。 それとも、「問題2の問題文は『嫌い同士を走査して、嫌い同士に一切入っていない客を取り除いて、客のリストを縮小し、後でこれらを招待用の組み合わせに追加せよ』という文章であったが、その意味がまったく理解できずコードに起こすこともままならないので、この問題文の意味を説明してほしい」ということでしょうか?
ppaul

2021/02/09 12:02

問題解決のpythonプログラミング本を持っていない人にも回答を求めるなら、問題の説明をしたほうが良いです。問題が分からないので、答えようがありません。
nnnnnnaa

2021/02/09 12:47

すみませんでした。お二方の意見を生かして今後もっと相手がわかるように質問していきたいです。一応、できましたのでコードの解決済みのところにのせます。
guest

回答1

0

自己解決

def d(allGoodCombinations):
S=[]

for i in allGoodCombinations: for j in i: S.append(j) return S

a=d(dislikePairs)
a_set=set(a)
guestList_set=set(guestList)
b_set=a_set&guestList_set
b=list(b_set)
c_set=a_set^guestList_set
c=list(c_set)

ありがとうございました。

投稿2021/02/09 12:48

nnnnnnaa

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問