• ベストアンサー

アドバイスください!和を構成する数値の選び出し

ここに13個の数値があります。 999,000 735,000 429,996 299,470 407,862 237,405 251,492 194,118 253,023 352,800 92,432 133,875 221,812 このなかの任意の数の和が、2,476,620になる数値を選びだしたいと思っています。 選択対象が多すぎてなかなかみつけることができません。とにかくいろんな組み合わせがあると思うので確率のように順番に組み合わせていったら途方にくれてしまいます。 業務で求められているのですが、このような任意の数を選び出す方法はあるのでしょうか?こんな風にすれば答えがみつかりやすい、といったようなヒントや見つけ方(答えが出ればとても嬉しいのですが)のノウハウをお持ちの方がいらっしゃればお願いいたします。 なお、組み合わせる数値の数(3個以内で和に達さなければならないとか)の制限は特にありません。

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

  • ベストアンサー
回答No.6

#1の補足 この数のうち一番大きい数から順に足していくと  999,000+735,000+429,996=2,163,996<2,476,620  999,000+735,000+429,996+407,862=2,571,858>2,476,620  なので最低でも4つ以上足さないとならないです。 逆にこの数のうち小さい順に足していくと  92,432+133,875+194,118+221,812+237,405+251,492+253,023+299,430+352,800+407,862=2,206,844<2,476,620 92,432+133,875+194,118+221,812+237,405+251,492+253,023+299,430+352,800+407,862+429,996=2,636,840>2,476,620 これより最大でも10個使う可能性があります。  それと末尾1桁をみて和が必ず0になるわけですから、これで少しは絞り込めますがそれでも6,000通りまでは行かなくてもかなりの組合わせがあります。  どなたかにプログラムを作ってもらった方がいいです。 今後このような和の計算が必要ならプログラムを組む意味はあると思います。

umiyama
質問者

お礼

補足までありがとうございました。 やはり、計算のしくみを理解してもかなり労力を要するようですね。手計算でやっていたという事例を聞いていただけなので、実際にできるかどうかみなさんのご意見を聞いてみたかったということもあります。 多分、以前手計算でやっていたときは、他にも予測できる案件があったのかもしれないし、対象数値もこんなに多くなかったのかもしれません。 和のプログラムということで、シロウトでも組めるものなのか、別カテゴリで再度質問してみたいと思います。 どうもありがとうございました。

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

その他の回答 (5)

  • cyoki_par
  • ベストアンサー率28% (9/32)
回答No.5

袋詰め問題というものだと思います。 コンピュータでは時間をかけてしらみつぶしで解くようになると思いますが、実務ではデータを良く見て整理しながら考えるのでしょう。 私なら最初に下一桁に注目して分類すると思います。 6は一つしかないので、これを選ぶときは絞り込めそうだからです。 何も10進数で考えなくてもよいわけで、16進数だったらもっと絞り込めるかもしれません。 コンピュータを使うのでしたら、2で割った余り、3で割った余り、・・・などを計算して考える方法もあると思います。

umiyama
質問者

お礼

ご回答ありがとうございます。 袋詰め問題ですか・・・そんな名前があるのですね。計算というより、パズルみたいなものだなあという印象(なので、よけいに面倒くさく感じてしまいました)を受けてはいたのですが。ネットで検索してみたいと思います。 2で割った余り、3で割った余りがどうのという話しは周りの誰かがちらっと言っていたような気がしますが、結局その考えでどうしたらいいかという明確な答えはそのとき得られませんでした。 私のように数学に弱い人は手計算はちょっと難しいような気がしてきています・・・

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

もう皆さんからの結論がでていますが、手計算でやるとして、少しでも楽にしようと思うなら、この手の問題は、場合の数をヒタスラ減らすことを考えれば正解に近づいていきます。 大きい順に並べると、 999,000 735,000 429,996 407,862 352,800 299,470 253,023 251,492 237,405 221,812 194,118 133,875 92,432 となります。ここで、999,000+735,000+429,996 =2,163,996 < 2,476,620 なので、3つ以下の組み合わせの和で2,476,620を超えることは不可能。よって、4つ以上の組み合わせの和を考えます。それでも、13_C_4+13_C_5+……+13_C_13通りあるので、結構ありますね…すべての和を考えていては、足し算が永遠に終わりませんので、下1ケタだけ絞込みます。 1)4つの数字の下一桁の数字の和の下一桁が0になるのは、 0+0+0+0=0 6+2+2+0=10 3+2+5+0=10 5+8+5+2=20 ...... 2)5つの数字の下一桁の数字の和の下一桁が0になるのは、 ...... . . . 10)13つの数字の下一桁の数字の和の下一桁が0になるのは、0+0+6+2+0+0+3+2+5+2+8+5+2=35 よって、存在しない。 これでもハードですが、まだできると思います。 以上、素人より。

umiyama
質問者

お礼

ご回答ありがとうございます。 私も、とりあえず下1ケタが0になるものを選びだして計算していたのですが、そのうち、「選び出す数値の数も不明なんじゃ、永遠に終わらないじゃないか!」と思い、すっかりあきらめモードになってしまってました。 ただ、大きなものから順に足していくと、247万何がしを超えるため、この数の組み合わせは4個以上である、という考え方は、数学からすっかり離れていた私をひとつおりこうにさせてくれた考え方でした。勉強していた頃は当たり前の考え方なのに、今となってはそういう基本的なことを全く忘れてしまってます。

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

今の数字の場合の解は No.2 さんが書かれているように 735000+429996+299470+407862+251492+352800=2476620 が唯一の解ですね. これを手計算で求めるのはかなり無理があると思います. 簡単なプログラムを組んだところ1秒とかからずに 全通り計算して解を出してくれましたので, 機械作業は機械にやらせるのが一番だと思います.

umiyama
質問者

お礼

ご回答ありがとうございます。 ああ、こうやって一発で解が求められたらどんなによいことか!!(でも、答えだけだしてもらう質問は禁止ですものね。) この解を求めるプログラムはシロウトレベルでも組めるものなのでしょうか?(エクセルとかで) いろいろ日々の仕事を効率よくしたくて、フリーソフトを探したり、こちらの回答などを参考にさせていただいているのですが、エクセルの関数式でもなかなか入力するのが難しくて・・・かといってお金を払って組んでもらうほど頻繁に使ったりしないんですよね。

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

何か上手い方法があるのかもしれませんが、 組み合わせは高々2^13=8192通りなので(ん?#1さんと違う??)、パソコン使って、強引に探す方法が一番楽だと思います。 13個から100個、1000個と増えるのなら、効率的に探す方法を考える必要がありますが。 735000+429996+299470+407862+251492+352800=2476620

umiyama
質問者

お礼

ご回答ありがとうございます。 やっぱりプログラミングレベルですよね。 5,6個の数値ならまだしも、13個もあって、何百万という数値規模でビンゴすることなんか果たしてできるのだろうかと半信半疑でした。 とりあえず1桁がゼロになるような数を足してみましたが、すぐに挫折しました。

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

 これはコンピュータのプログラミングの方で聞いたほうがいいと思います。  数を小さい順に並べ、A1,A2,・・・・・,A13として  あらゆる和のプログラムをコンピュータに詳しい人に作ってもらえばいいと思います。計算が間違ってなければ28,190通りあります。  今回の場合はA1=92,432、・・・・、A13=999,000として。  手計算では無理があります。  

umiyama
質問者

お礼

ご回答ありがとうございます。やっぱりそうですよね。業務に絡むことなのであまり詳しくは書けないのですが、このような割り出しを手計算で予測をつけてやっていたので私にもやってくれ、と言われまして・・・内心「それはコンピュータじゃないとムリでしょ!」と思ったんですけど、やってたと言われてしまったら、返す言葉ないですよ、ねえ。

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

関連するQ&A

  • 一位の数の和はいくつか。

    先ずは例を提示します。 257389 に対して、隣同士の数の和の一位の数を求める。このことを繰り返していく。 2 5 7 3 8 9  7 2 0 1 7   9 2 1 8    1 3 9     4 2      6 最後が6で終わるので、答え6。 答えの6を一行目の257389の数から簡単に求められる方法がないか。一般化して、一行目の数が257389だけでなくどんな数の場合でも使える求め方はないか。  つぎのような決まりがあるところまでは、考えました。 257389の場合、 2*5c0,5*5c1,7*5c2,3*5c3,8*5c4,9*5c5 の和を10で割った余りが答え。5c0は5個から0を取り出す組み合わせ。  対称性と5ckが10の倍数を使えばもう少し簡単。しかし、257389の場合、直接計算したほうが簡単。 一行目の数が100ぐらいの場合に威力が発揮されればよいと思うが、果たして、簡単な計算方法があるのか。よろしくお願いします。

  • 確率 さいころの目の和の問題が

    中学生3年生です。 確率の問題ですが、わかりません。 2つのさいころを投げて、目の和が6になる場合の数を求めたいです。 目の和が6になるのは、(1,5),(2,4),(3,3),(4,2),(5,1)の5通りになります。 これを計算で求めたいのです。 問題集の答えには、目の和の場合の数を数えあげているのですが、さいころ2個だと数えればいいですが、10個とかだと数えるのが大変なので参考に教えてください。

  • 1つのサイコロを何回か投げて、出た目の数の和が4以下になったらそこで投

    1つのサイコロを何回か投げて、出た目の数の和が4以下になったらそこで投げることを終える。 このとき二回目で終わる確率は? 三回目で終わる確率は? 投げる回数の期待値は? どうしても答えが合いません^^; 数学なので回答しにくいと思いますがよろしくお願いします。

  • エクセルで、「袋詰め問題」を解きたい

    先週、数学カテゴリで質問させていただいたのですが、解を導きだすのに手計算では無理があるので、コンピュータにまかせたほうがいいというアドバイスをいただきました。 たとえば、ここに13個の数値があります。 999,000 735,000 429,996 299,470 407,862 237,405 251,492 194,118 253,023 352,800 92,432 133,875 221,812 このなかの任意の数の和が、2,476,620になる数値を選びだしたいと思っています。 (毎月、各数値と候補となる数値の個数(例では13個)、和の合計は変化します。) 業務上必要となるのですが、こういった流れをくむ問題の解を、瞬時に計算してくれる式は、エクセル等で組めるのでしょうか?関数というより、プログラミングレベルなのかもしれませんが、プログラムについて全然詳しくないので、言語と使用環境の関係がよくわかりません。ですのでエクセルを使用して作業することができればと思っています。 候補となる数値の個数は最大でも15個くらいかと思います。 わざわざお金を出してプログラムを作成するまで規模も使用頻度もなく、かといって手計算では組み合わせの確率的にいって無理があるので、何とかオフィスソフト使用により自分で処理したいところです。知識のあるかたのご教授をお願いできたらと思っています。よろしくお願いいたします。

  • 数値を複数の群に分ける最適な組み合わせを求める方法

    次のような問題をCで記述するにはどのようにすればいいでしょうか? 要素数が不定の整数値配列がある。 この配列の各要素を、与えられた個数の群に分ける。 条件として、与えられた数値列で隣り合う数値しか同じ群に含めることは出来ない。 例: 数値列は{5,2,7,12,6,15,4} 群の個数を3とする。 (1) {5,2},{7,12,6},{15,4} (2) {5},{2,7},{12,6,15,4} (3) {5,2,7},{12},{6,15,4} ・・・ と複数の組み合わせがある。 これらの組み合わせのうち、各群の合計値が最も均等になるような組み合わせを求める。最大値と最小値の差が最小となる組み合わせを最も均等と考える。 上の例であれば、各群の合計値と、合計値の最大値と最小値の差は、 (1) {5,2},{7,12,6},{15,4} ==> 7,25,19 (25-7=18) (2) {5},{2,7},{12,6,15,4} ==> 5,9,37 (37-5=32) (3) {5,2,7},{12},{6,15,4} ==> 14,12,25 (25-12=13) ☆ のようになり、この3つの中で最も均等なのは (3) {5,2,7}{12}{6,15,4} となる。 実際は、これ以外の組み合わせでより均等となるものがあるかと思います。 この問題そのものが必要なわけではなく、この結果を利用して別のある問題を解決しようとしています。 数値の数が増えると組み合わせの数も大幅に増えて計算時間に影響すると思います。 全ての組み合わせを試すことなく答えにたどり着く方法があれば、考え方だけでも提示頂ければと思います。

  • 不特定の数値の羅列から重要な数値だけを抽出したい

    例えば下記の様な1~50までの数値があったとします。 1,5,9,10,10,10,10,15,20,21,22,23,25,31,32,39,50 この中から主要な数値を検出してそれらに順位を付けたいと思います。 順位  該当数値  理由 1位:  10       4個の同一数字がある為 2位:  20~23    連続して並んでいる為 3位:  31,32     連続して並んでいるが上の例に比べて連続数が少ない為 1.実際に扱う数値は約700~1500程度ですが、制限はありません。 2.数値の量(配列数)は1000個程度です。 3.プログラム(C#)で結果を算出します。 4.順位の境界は明確ではありませんが、実際の値を見ながら決めたいと思います。 5.与えられる数値は時間と共に変動し、新しい数値が入るとその分古い数値が排除されます。 6.新しい数値は不定ですが、その都度ソート処理をして昇順に並び替えます。 7.上記例で、同一順位が複数あった場合は例えば1位が3個などの答えとします。 (該当する順位が0の場合も有りです) 上記を実現する為の考え方や手順などを教えて頂けないでしょうか。

  • Excelで複数の数の和が一定以上となる確率

    ・数値X1,X2,X3はそれぞれ独立にXmin~Xmaxの中の任意の値を取ります。 ・A=X1+X2+X3です。Bはまた別の任意の数です。 ・以上の数は全て正の整数です。 このとき、Xmin,Xmax,Bを入力して、A≧Bとなる確率を求める方法をお教えください。

  • 中2レベルの数学 確率

    中2レベルの数学のドリルをやっています。 問題文 2つのサイコロA,Bを同時に投げる時、次の確率を求めなさい。 出る目の数の和が4の倍数になる確率 です。 4の倍数は、4、 8、 12・・・・なので、組合わせは 2+2=4 2+2=4 3+1=4 1+3=4 4+4=8 4+4=8 6+2=8 2+6=8 5+3=8 3+5=8 6+6=12 6+6=12 の12通りです。なので36分の12で答えは3分の1になると思うのですが、正解は4分の1でした。どこが間違っていたのでしょうか? ちなみにドリルに、訂正の紙は入ってませんでした

  • 場合の数と確率

    3個のサイコロを投げるとき、出る目の和が9になる確率を求めよ。 起こりうる全ての場合の数が6^3=216 和が9になるのは書き出して、7になりました。 答え7/216 間違ってるような気しかしません。

  • 小6 約数がわかりません

    質問が 150の約数のうちから4個をえらんでその和を足したところ、80になりました その4個の数を小さい方から順に書きましょう 解き方をみたら、 最大公約数の数の大きい順から考えて、80-75=5  3つの数で5になる組み合わせはありません。 80-50=30 3つの数で30になる組み合わせは・・・・・・・と答えが書いてました。 わからないのは、どうして3つの数なんですか?4個を選んだんだから4つじゃないんですか? 3つの意味がさっぱりわかりません。 おしえてください。

印刷紙面の汚れがとれません
このQ&Aのポイント
  • 昨年12月頃から、印刷すると紙面左側端の上下全体に黒のトナーの汚れが付く。
  • ワイヤーを拭いたりドラムを拭いたりしても汚れはとれません。
  • お使いの環境はWindowsで有線LANに接続されており、関連するソフト・アプリはありません。電話回線はアナログ回線です。
回答を見る