• ベストアンサー

プログラム???

例えば、5種類のマフラーがあって、それぞれに9色の色があり、枚数も1色1000枚とか、500枚350枚という具合にあるとして、それをアソートで10枚組をつくりたいのですが、できるだけ5種類のしかも色をバラバラに組みたいのですが、どう組み合わせればいいかを簡単に表とかに表せるようなプログラムというか、システム作りみたいな方法をご存知ないでしょうか?いい方法があれば、教えてください。 赤 青 黄 白 クロ ピンク 緑 紺 灰 A 1000 350 500 500 500 350 650 325 400  B 800 500 500 350 600 600 ・・・・・・・・・・・・ C ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ D  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ E  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・    といった感じなんですが・・・。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

答える能力はないと思いますが、回答を考えられる方のためにも、質問の意味把握で確認をお願いします。 (1)A,B、C、D、E・・は何を表していますか。 (2)それらの行のAの1000,350,500・・は何を表していますか。枚数らしいが、例えば在庫枚数らしいが、すると なぜA、B、Cと変化が起こり得るのでしょうか。 (3)「アソート」とは何ですか。 その他確認 (品名) 例としてマフラー。1つを「枚」といっている。 (種類) サイズとか型形式とか。5種類あり。 (色)種類ごとに、欠けなしで、9色種類あり。 (目的)10枚を一組にして、袋詰とか箱詰する。 (条件)各10枚の中で、種類がバラバラ、色がバラバラ にしたい。種類は2個は同一になるのは避けられない。? むしろ、種類だけ注目すると、一番バラバラとは、いつも5種X2セットに固定になるのでしょうか。abcdeabcdeのように。 色も1個は同一になるのは避けられない。? ●(A)本質問は多分組み合わせの問題なのだろうと思います。数年OK-WEBのコンピュタの質問を見ていますが、組み合わせの問題は、2-3件しか出ませんでした。エクセルなどでは、取り扱い難い問題だと思います。また手続き型プログラム(JAVA,VBなど)では苦手の型のように思います。強いて、エクセルのSolverなどが使えるかもと思いつくぐらい。 (B)この型の問題は、解決のアルゴリズムが決定的に重要です。それも「数学的根拠に裏打ちされていなくてはなりません」。そうするとコンピュターの問題は2の次で、まず適切なアルゴリズムを見つけなくてはなりません。そして紋きりがたの方法は多分なくて、ケースバイケースで考え方の視点を変えなくてはならず、幾何の補助線のように、素人にはなぜそれを思いついたか不思議と言うタイプが多い気がします。 (C)このOK-WEBのコンピュタのカテゴリの回答者はプログラマやパソコンコンピュター経験者が多いでしょうが、プログラマには意外に文系専攻の人が多いのか、数学が絡むと途端に回答が出ない傾向を感じます。それで本質問の様なのは、数学のカテゴリでまず質問されることをお勧めします。

その他の回答 (1)

  • Nutrocker
  • ベストアンサー率19% (9/47)
回答No.1

(種類と色で区別できるものをタイプと呼ぶことにする) (1)枚数の多いタイプ順に並べる。 (2)上位10タイプを最初の10枚組とする。(組数は10位の枚数) (3)(2)の組を取り除く。 (1)~(3)を繰り返す。 (2)で上位が9タイプ以下になったら次のような1組ずつ作る方法に切り替える。 例えば、残りが8タイプなら [1][2][3][4][5][6][7][8][1][2] と言う風に数の多いタイプから1枚ずつ取っていく。 1組出来上がると、枚数の多いタイプ順に並び替えてこれを繰り返す。 ------------------------------------------------- ここで、種類がダブることと色がダブることの優先度は同じとしている。

関連するQ&A