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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Python

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

Q&A

0回答

211閲覧

複数の制約があるなかでの価値最大化。(ナップサック問題応用)

zoomzoom8

総合スコア0

Python

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

0グッド

1クリップ

投稿2024/01/21 11:07

実現したいこと

容量10リットルのナップサックがある。
ナップサックのなかに袋が四つある。
袋は黄色、青色、赤色、白色。
袋は色ごとに1、2、3、…、9、10リットルのサイズがある。全部で40種類。
手元には大小様々な大きさ、色、価値をもったボールがある。
ボールの色は黄色、青色、赤色、紫色、緑色、白色の6種類。
ボールを袋に詰めたうえでナップサックに収納、ナップサックに入ったボールの価値を最大化したい。
制約は下記の通り。
①ボールは直接ナップサックには入れることができず、必ず袋に入れた状態である必要がある。
②ボールを袋に入れるときには同じ色の袋にしか入れられない。
③白色の袋はどの色のボールでも入れることができる。
④白色のボールはどの色の袋にでも入れることができる。
⑤同じ色の袋はナップサックに入れることができない。つまり、1リットルの黄色の袋を入れた状態でさらに2リットルの黄色の袋を入れることはできない。


①2リットルの赤色のボール(5円)
②2リットルの赤色のボール(6円)
③9リットルの赤色のボール(12円)
④2リットルの黄色のボール(3円)
⑤5リットルの黄色のボール(4円)
⑥4リットルの青色のボール(4円)
⑦3リットルの青色のボール(5円)
⑧7リットルの紫色のボール(6円)
⑨2リットルの緑色のボール(5円)
⑩4リットルの緑色のボール(6円)
A 8リットルの白色のボール(10円)が各1つずつある場合。

制約条件のなかで価値を最大化する入れ方は、
・2リットルの赤色の袋に①を入れる
・2リットルの白色の袋に②を入れる
・2リットルの黄色の袋に④を入れる。
・3リットルの青色の袋に⑦を入れる。
価値は19円、合計の容量は9リットル、となる。

かなり複雑ですがいかがかでしょうか?
Pythonで、実装したいと考えてます。
よろしくお願いします。

発生している問題・分からないこと

python初心者です。pythonで実装したいが、どのようにコードで表現したら良いかわからない。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

コストと容量が与えられた一般的なナップサック問題はpythonで記述できることがわかった

補足

特になし

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

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

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

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

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

meg_

2024/01/21 11:14

> かなり複雑ですがいかがかでしょうか? > Pythonで、実装したいと考えてます。 > よろしくお願いします。 もしかして勘違いされてませんか?teratailはコード作成依頼をする場所ではありません。 https://teratail.com/help/avoid-asking > python初心者です。pythonで実装したいが、どのようにコードで表現したら良いかわからない。 いきなり難しい問題に挑戦せず出来ることからレベルアップしていくのが結局近道だと思います。
ikedas

2024/01/21 12:41

meg_ さんに同意です。まず自分で勉強してから質問しにきてください。
tmp

2024/01/22 03:12

「どのようにコードで表現したら良いかわからない」と表現方法がわからないのであれば、他の言語やアルゴリズムだけでも記述したほうがよいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問