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

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

新規登録して質問してみよう
ただいま回答率
85.48%
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

最適化

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

Python

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

824閲覧

for文で組み合わせ最適化をしたい

taiga0815

総合スコア13

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

最適化

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

Python

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/04/12 03:59

前提・実現したいこと

二次元配列の全通りの組み合わせをfor文で回し、それぞれのリストで処理をしたい

発生している問題・エラーメッセージ

list index out of range

該当のソースコード

python

1import itertools 2 3#リスト型を用いた処理 4def ROMI(x): 5 ROMI = (0.02*x[0] + 0.05*x[1] + 0.01*x[2] + 0.06*x[3] + 0.04*x[4] + 0.07*x[5]) / (x[0]+x[1]+x[2]+x[3]+x[4]+x[5]) 6 return ROMI 7 8all_comb = [] 9seq = [] 10opt = [] 11ROMI_A = 0 12ROMI_B = 0 13 14for i in range(0,4): 15 seq.append(i) 16 17#5C2 18for v in itertools.combinations(seq, 2): 19 comb = [int(a) for a in v] 20 all_comb.append(comb) 21print(all_comb) 22 23for j in range(len(all_comb)): 24 X = all_comb[j] 25 ROMI_A = ROMI(X)#エラー該当箇所 26 27 if ROMI_A > ROMI_B: 28 ROMI_B = ROMI_A 29 opt = X 30 else: 31 pass 32print(opt)

試したこと

itertoolsだとリストがstr型になるためint型に直したのですが、入れ子構造のせいか、listの範囲が合わせられませんでした。

補足情報(FW/ツールのバージョンなど)

Jupiter labを使用しています。
拙いコードですが、回答いただけると嬉しいです。

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

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

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

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

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

guest

回答1

0

自己解決

python

1for v in itertools.combinations(seq, 6):

完全に見落としてました。

投稿2020/04/12 07:38

taiga0815

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問