• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:決められた数字の組み合わせが逆算出来るソフト)

決められた数字の組み合わせが逆算出来るソフト

このQ&Aのポイント
  • 決められた数字の組み合わせを逆算するソフトやサイトを探しています。商品の組み合わせ方法が決まっており、各商品には在庫があります。
  • 商品の種類は10種類で、それぞれ0~9の番号で識別されます。S、M、Lの3種類のセットを作成する際には特定の商品を組み合わせます。
  • 500個の商品を無駄なく使い切るために、Sセット、Mセット、Lセットの組み合わせを選びたいと考えています。効率的な組み合わせを自動的に識別できるソフトやサイトを探しています。

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

  • ベストアンサー
  • sora1515
  • ベストアンサー率58% (54/92)
回答No.2

前回よりすごくわかりやすくなってます。 確認ですが、 Sセット 【25457】x2セット、【36568】x5セット、【37679】x4セット がありうるかまたは、 Sセット 【25457】、【36568】、【37679】 x5セット Mセット 【14347】、【25458】、【26568】 x8セット Lセット  【03236】、【14347】、【04347】 x7セット となるか。(もし下部であれば【5製品】ごとにした意味は何か。) 何から何を求め、何を優先するのか? ・在庫数、セット数平均、製品配置。  製品配置を最後に求める場合など完全な正解はないですよ。 例 【01234】【56789】【01234】x10セット 【56789】【01234】【56789】x10セット 【01234】【56789】【01234】x10セット  ↑ここの0を5に変えてもセット数/在庫数に影響はないどっちも正解となる。 多様な微仕様を追加すれば作れそうだがけっこう手間な為、順算しパターンを試す方が楽ではないでしょうか。この特化仕様はフリーソフトではないと思われます。仕様を詰め作る職人はいっぱいいますが基本高いですよ。 順算であればエクセルで素人作成可能です。 試しで作った順算エクセルが必要な場合声をお掛け下さい。

evo9027
質問者

お礼

詳しい説明とご回答ありがとう御座います。 選択方法としてはSセット 【25457】x2セット、【36568】x5セット、【37679】x4セットでも問題ありません。 Sセットに属する3パターンは全て同じ内容のセットと考えて頂いても大丈夫です。 求める事としてはセット数をいかに多く作り出すことが出来るかという事です。 なので、1つでも多いセットが作成出来るのであれば、仮にSセットにて【25457】の組み合わせが偏っても構いません。 このような組み合わせを仕分けるソフトが無いという事と、エクセルにて差引在庫を分り易く表示出来る事も教えて頂き本当に感謝です。 作成して頂いたエクセルの計算方式を利用して、各セットの3パターンの数を平等にせず、全ての9パターンのセット数を手入力していけば、差引在庫を見ながら大体の仕分けも出来るかと思います。 もし、お手数でなければ作成をして頂いた計算方式もお伺い出来たら幸いです。 非常に分かり易く、参考になるご回答ありがとう御座います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • sora1515
  • ベストアンサー率58% (54/92)
回答No.6

回答5の補足です。 >出来る限り、自分の作業にて教えて頂い 賛成です。覚えると今後の応用修正が楽になります。 1.C7:L10範囲の関数がちょっとだけ難しいです。  配列数式{}中カッコを使っている(C2とD2とE2の計算結果をさらに足す事)  {=SUM(LEN(C2:E2)-LEN(SUBSTITUTE(C2:E2,"0","")))*G2} 2.1をやめる。{}中カッコをなくし、D2とE2の計算をなくす。   =(LEN(C2)-LEN(SUBSTITUTE(C2,"0","")))*G2    ※これは、(C2の桁数 - 0を省いたC2の桁数) * G2 です。 3.B3セルをS2セットと書き換え、2と同じようにC15も変える。(B7やB8もS1/S2セットと変えておく)   =(LEN(C3)-LEN(SUBSTITUTE(C3,"0","")))*G3 4.3と同様にS3セットも作る。 5.B5セルに行を6個追加する。差引在庫の上も6行追加する。 6.M123、L123の行をSセットのように追加する。 7.C2内の0を数える(元C7)の関数をコピーし、C2の1の数を数える関数を作る(元D7セル)   =(LEN(C2)-LEN(SUBSTITUTE(C2,"0","")))*G2    ↓   =(LEN(C2)-LEN(SUBSTITUTE(C2,"1","")))*G2 8.あとは縦横同じような事を行う。 9.差引在庫などの足し算位置を微調整する。   =C13-SUM(C14:C16)    ↓   =C13-SUM(C14:C22) 補足:関数中の$はオートフィルした時に自動でセル位置修正しなくする為のおまじないです。なくてもかまいません。

evo9027
質問者

お礼

参考なるご意見ありがとう御座いました。 なんとか自分でも計算式を付け加えたり、変更する事も出来ました。 今現在の知識では関数の部分が難しいところでもありますが、それも合わせて自分で学習して身に付けていこうと思います。 この度は最初から最後まで丁寧にご回答頂きありがとう御座いました。 このような親切な方に出会えた事も嬉しく思います。

全文を見る
すると、全ての回答が全文表示されます。
  • sora1515
  • ベストアンサー率58% (54/92)
回答No.5

回答2の者です。 順算.xlsです。参考までどうぞ http://www7.gigafile.nu/v3/?dda53bb8d333ada14efd243db3bbde1e エクセル2000と古いので動かない場合はまたお問合せ下さい。

evo9027
質問者

お礼

ありがとう御座います。 問題なく利用させて頂く事が出来ました。 これ以上、お願いするのは本当に申し訳無く思うのですが、もし宜しければ以下のような計算方式に変更した物をお伺いさせて頂く事は可能でしょうか? 変更前 Sセット 25457 36568 37679 x 5 Mセット 14347 25458 26568 x 5 Lセット 03236 14347 04347 x 5 変更後 S1セット 25457 x 5 S2セット 36568 x 5 S3セット 37679 x 5 M1セット 14347  x5 M2セット 25458 x 5 M3セット 26568 x 5 L1セット 03236 x 5 L2セット 14347 x 5 L3セット 04347 x 5 以上のような9段にする事で手動入力は増えてしまいますが、各サイズのセット数の微調節も可能なのかなと思っております。 出来る限り、自分の作業にて教えて頂いた数式をご利用させて頂き変更が出来るようにも頑張ってみたいかと思います。 本当に感謝致します。

全文を見る
すると、全ての回答が全文表示されます。
  • ki073
  • ベストアンサー率77% (491/634)
回答No.4

組み合わせの場合数が複雑でないのでしたら、No.2の方法でもよいように思いますが、 複雑になってきて、ある程度最適な組み合わせを見つけたいときには、線形(整数)計画法を使うのが良いかも知れません。 GLPKというフリーのソフトがあり、Unix系OSやWindowsでも使えます。 以前回答したものをリンクしておきますが、はじめて見ると相当手強いと思います。 http://okwave.jp/qa/q7579420.html 実際に質問欄のものでやったプログラムを書いておきます。急いで作ったので間違いがあるようにも思いますが、答えを書いていきます。 まずは制限なしで、セットを最大数作る場合では72セットできるようです。 NumberofSet[L1].val = 0 NumberofSet[L2].val = 0 NumberofSet[L3].val = 17 NumberofSet[M1].val = 15 NumberofSet[M2].val = 19 NumberofSet[M3].val = 12 NumberofSet[S1].val = 9 NumberofSet[S2].val = 0 NumberofSet[S3].val = 0 TotalSetNumber.val = 72 次に制限を加え、LセットとSセットの合計が25個以上になるような条件を加えると69セット NumberofSet[L1].val = 12 NumberofSet[L2].val = 2 NumberofSet[L3].val = 11 NumberofSet[M1].val = 0 NumberofSet[M2].val = 6 NumberofSet[M3].val = 12 NumberofSet[S1].val = 11 NumberofSet[S2].val = 15 NumberofSet[S3].val = 0 TotalSetNumber.val = 69 使ったプログラムは #-----------次から set SetName; # セットの名前 set Index := 1..5; # セットの中の番号 set GoodsID := 0..9; # 詰め合わせる商品の番号 param AssortmentList{SetName, Index}; # 詰め合わせリスト param assortment{p in SetName, g in Index, gi in GoodsID}, binary, := if gi=AssortmentList[p, g] then 1 else 0 ; var NumberofSet{SetName}, >=0, integer; # セットごとの数 var requiredNumber{GoodsID}, >=0, integer; # 必要な商品数 maximize TotalSetNumber: sum{p in SetName}NumberofSet[p]; s.t. TotalN{k in GoodsID} : sum{p in SetName, j in Index}assortment[p, j, k]*NumberofSet[p]=requiredNumber[k]; s.t. required{k in GoodsID} : requiredNumber[k]<=50; solve; display requiredNumber; # 商品ごとの必要数 display NumberofSet; # セットごとの数 display TotalSetNumber; # 作ることのできるセット数合計 data; set SetName := L1, L2, L3, M1, M2, M3, S1, S2, S3; # 詰め合わせリスト param AssortmentList: 1 2 3 4 5:= L1 2 5 4 5 7 L2 3 6 5 6 8 L3 3 7 6 7 9 M1 1 4 3 4 7 M2 2 5 4 5 8 M3 2 6 5 6 8 S1 0 3 2 3 6 S2 1 4 3 4 7 S3 0 4 3 4 7 ; end; #--------この上まで # glpsol --math program.mod # コマンド です。 s.t. SetL : NumberofSet["L1"]+NumberofSet["L2"]+NumberofSet["L3"]>=25; s.t. SetS : NumberofSet["S1"]+NumberofSet["S2"]+NumberofSet["S3"]>=25; で条件を追加したのが、二番目の結果です。 このように思うような条件を加えていけば、なんとかなりそうに思います。 興味がありましたら、書き込んでください。要領さえわかれば簡単に改良できます。

evo9027
質問者

お礼

本当に詳しい詳細をご記入頂きありがとう御座います。 制限あり、なしでの作成出来るセット数や計算式も非常に参考になりました。 GLPKのようなソフトも非常に良いものだと思います。こちらも今後とも活用していけたらと思っております。 大変貴重なお時間と適切なご回答を頂き、ありがとう御座いました。

全文を見る
すると、全ての回答が全文表示されます。
  • warumx
  • ベストアンサー率0% (0/9)
回答No.3

まず、データの整合性を確認しましょう。 Mセットの最初とLセットの2番目は一致しているので どちらかを修正した方がよいです。 それから、商品9の設定数が少なすぎるようです。 Mセットの組合せを少し変えて解くと80セット程度が 最大のようです。 100セット近くにするには商品の組合せが非常に重要と 思います。 

evo9027
質問者

お礼

回答ありがとう御座います。 確かに同じセット内容が重なっていました。 これ以外にも同様のケースで組み合わせを行うために、今後とも自動的に組み合わせを逆算できる物を探しておりました。 商品9の設定も少ないですが、この並びに関してはどうしても変更が出来ないのです。 詳しいご回答ありがとう御座います。

全文を見る
すると、全ての回答が全文表示されます。
  • dejigame
  • ベストアンサー率0% (0/2)
回答No.1

数学のカテゴリで聞けば、もしかしたら方程式を作ってくれるかも知れませんよ。 ソフト化というのなら、こんなサイトもあるので、聞いてみては?。 料金安めのソフト開発 http://www.cuore.jp/it/ordermade/ http://www.flex-web.co.jp/soft_index.htm 激安、ボランティア系 http://www.tanomi.com/ http://anago.2ch.net/test/read.cgi/software/1348064199/ http://sadousinjin.blog.fc2.com/

evo9027
質問者

お礼

ご回答頂きありがとう御座います。 確かに数字のカテゴリで質問をさせて頂いていれば方程式を生み出すことが出来たかも知れません。 今回は今後も同じような仕分けがある為に、何か良い計算ソフトがないかと思いご質問させて頂きました。 記載して頂きましたURLも参考にさせて頂きます。 ありがとう御座いました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 組み合わせについて、教えてください!

    こんばんは。 どなたかにご指南いただければと思い、質問を投稿しました。 宜しくお願いします。 早速ですが、標題の「組み合わせ」についてです。 ある制作物を作成していますが、店舗により掲載する商品、そうでない商品 とあり、何パターン作ればよいか分からず、困っています。 「一部店舗では取り扱いがありません」と注釈をつけて、全商品をと提案してみましたが クライアントの希望でどうにかしてほしい(店舗毎に作ってほしい)とあり何とか叶えたいと思うのですが,,,, 商品が、16商品 店舗数が57店舗 それぞれ、掲載するしない決まっており、期日が明日までとなっておりとても困っています。 どなたか知恵を貸していただけませんでしょうか。 何パターン作ればいいのか、調べる方法や何か良い手があれば、ご指南ください。 教えてください!宜しくお願いします!

  • Excelで、数字の組み合わせの合計が一定数になるパターンの抽出

    Excelで、数字の組み合わせの合計が一定数になるパターンの抽出 たとえば、つぎの配列があるとします。 A(5){10,20,30,40,50}要素数が5つ1..5、{}は内容 このなかで二つ以上の組み合わせで和が60になる組み合わせを出したいとします 答えは パタン1:1,2,3  /* 10+20+30 */ パタン2:1,5 /* 10+50 */ パタン3:2,4 /* 20+40 */ 同じような処理をExcelの関数では実現できますでしょうか? また上記のような組み合わせのパタンの総数を求める公式はありますか? 初歩的な高等数学で恐縮です。

  • エクセルで作成できますか?

    91個の材料を使って商品を作ります。商品にはサイズがS.M.LあってSを1個作るには材料を2個、Mを1個作るには材料を3個、Lを1個作るには、4個それぞれ使います。 91個内で各サイズを作るとき、どのサイズを基準にしてもサイズ毎の作成可能数を表示できるようにエクセルで作成可能でしょうか? 例えば、 Sサイズを18個と入力したら自動でMサイズの作成可能数、Lサイズ作成可能数が計算できるようにしたいのですが。また、基準をSサイズだけでなく、Mサイズ、Lサイズどのサイズを先に入力しても計算できたらなお助かります。

  • [大至急]5つの数字のパターンは?

    1,2,3,4,5 番のスイッチを見立てた数字があり、 これを以下のようなパターンで考えるとどの様な組み合わせ数になるのか? また、それを記述していただいたらうれしいです 1,-,-,-,- 1,2,-,-,- 1,2,3,-,- 1,2,3,4,- 1,2,3,4,5 ※必要ないパターン 2,3,1,4,5 2,-,3,5,- 順番が入れ替わる必要はありません つまり、 1だけがONの時にはこの処理を行う 1と3だけがONの時にはこの処理を行う などの様に、1~5個のスイッチ条件の組み合わせをプログラムで作りたいのです。 よろしくお願いします。

  • 組み合わせ数を教えて下さい。

    組み合わせ数を教えて下さい。 6種類の長さの物を、組み合わせて必ず 6mにした時、何通りあるのか? 教えて下さい。同じ種類を何度つかってもよいです。 (1)=100mm (2)=400mm (3)=300mm (4)=350mm (5)=200mm (6)=1000mm

  • 文字列の組合わせについて

    仕事でこまっています。できるだけ早めに教えていただけると幸いです。 ABCDEFという文字列があるとします。この文字列の組合わせのパターン とそのパターンがいくつあるかしらべたいと思っています。 パターン化する際の条件としては ■重複する文字列のパターンは除く AABCDFとかABBDFDなどは除いてください ■文字数は1文字から6文字までです。 A、Bという組み合わせからABCDEFまでの中からの組合わせになります。 ■順番については、違っていても同一のものとする。 ABCでもBCAでも同じ組合わせということになります。 またこういう作業をする際にどうやって算出するのかも併せて教えて いただけると助かります。 以上よろしくお願いいたします。

  • 組み合わせ数を教えて下さい。

    組み合わせ数を教えて下さい。 6種類の長さの物を、組み合わせて必ず 6mにした時、何通りあるのか? 教えて下さい。 (1)=100cm (2)=400cm (3)=300cm (4)=350cm (5)=200cm (6)=1000cm

  • 軌道に可能な量子数の組み合わせについて

    4p軌道に可能な量子数(n,l,m)の組み合わせをすべて求めよ。 解き方を教えてください。

  • 組み合わせの問題

    ↑ ○○○・・○ | ●●●・・● M △△△・・△ 種 ▲▲▲・・▲ 類 ◆◆◆・・◆ | □□□・・□ ↓ ■■■・・■   ←ーN個ー→ この中からX個を取り出したい。その時の組み合わせの数はいくつになるんでしょう?

  • 在庫の集計VBAについて

    元のエクセルファイルにすべての商品コードとサイズと在庫数が以下のようにあります。 code  サイズ  在庫数 a  S  10 a  M  5 a  L  7 b  26インチ  10 b  27インチ  20 b  28インチ  10 c  S  1 c  M  6 c  L  4 c  LL  20 ・ ・ ・ ・ と2万行ほど。 そこで週2回ほど在庫表が他部署から回ってきます。 しかし、そのファイルには以下のように在庫のあるコードとサイズと個数しか書いていません。 code  サイズ  在庫数 a  M  1 a  L  2 c  M  5 c  LL  11 ・ ・ ・ ・ 期待値としましては、 a  S  0 a  M  1 a  L  2 b  26インチ  0 b  27インチ  0 b  28インチ  0 c  S  0 c  M  5 c  L  0 c  LL  11 ・ ・ ・ ・ となるようにマージしたいです。 元のファイルにはすべてのcodeとサイズが書いてあります。 回ってくる在庫表はすべてのコードとサイズが書いていません(在庫のあるものだけ書いてあります)。 在庫が復活するとまた書き直さないとダメなので、困ってます。 いい方法はないでしょうか。 どうぞ、よろしくお願いします。

専門家に質問してみよう