• ベストアンサー

たくさんある数字の中から、どれを足せばその数字になるかわかる方法ってありますか?

タイトルどおりなのですが、数字を自動検索するような方法ってありますか? 文章ではわかりにくいので、例を出しますと 13 8 2 の数字の中で、何個か数字を足して10という数字を作らなければいけない。 この場合、8と2を使うと10になります。 その8と2がわかるようなソフトとか、計算方法とか、エクセルの使い方とかわかりませんでしょうか? 数字の数が半端ではないので、いちいち手計算していると時間がかかってしまうのです。 よろしくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

いわゆる「ナップザック問題」だと思います。(もともとすごく時間のかかる問題です) 上記で検索してみるといろいろアルゴリズムが引っかかると思います。 とりあえず、過去にエクセルで似たような質問&回答がありましたので、挙げておきます。 http://okweb.jp/kotaeru.php3?q=1255891

参考URL:
http://okweb.jp/kotaeru.php3?q=1255891

その他の回答 (3)

  • pori_boy
  • ベストアンサー率60% (18/30)
回答No.4

こんにちは No.3の方の書いているとおり、この問題は ナップサック問題(もしくはナップザック問題)と 呼ばれる問題で(数学的に)結構難しい問題です。 この問題に対する解法で教科書レベルのものは2種類 あり、それぞれの得意・不得意な入力のタイプがあります。 1. 数字の数(n種類とする)が少ない場合 足し算のときに各数字を使う・使わないというのを 全とおり考えるとすると、組み合わせの数は2^n。 nが15くらいですと30000種類程度なので エクセルのVBAなどで十分対処可能になります。 (No3のリンクからたどることができます) もし、Java,Cなどでのプログラミング環境があれば (計算速度がエクセルとは段違いに速いので) nが20くらいなら工夫なく実用化できると思います 2. 目標とする数(mとする)が小さい場合 動的計画法という手法を使うとnm回くらいの計算で 答えを見つけることができます。 例えば数字が100種類あって、目標値が1000という ような状況にはこちらの方法が向いています。 どちらでもない(数字の種類も多いし、目標値も 大きい)のであればかなり真剣に取り組まないと いけないかもしれません。 状況をもう少し説明してもらえば、踏み込んだ アドバイスができる可能性があります。

  • SaySei
  • ベストアンサー率32% (528/1642)
回答No.2

とりあえず、方法としてはExcelのVisualBasicEditorでマクロを組むという手があります。 すみません、あまり参考になりませんね(汗)

  • 8942
  • ベストアンサー率13% (188/1414)
回答No.1

足して10になる2つの数をA,Bとすると、   A+B=10  A=a+(10-b)  B=-a+b a:任意の整数 0<b=<10 の整数 こんな感じでしょうか?  自信なしです。

関連するQ&A

  • 複数の数字の組み合わせの中から合計がAになる組み合わせを探す方法

    例えば、1~10の数字があって、その中から合計が10になる組み合わせを探す、という計算式はExcelで作成することはできますか?(答えは[1+2+3+4][1+2+7][1+3+6][1+4+5][1+9][2+3+5][2+8][3+7][4+6]の9通り) もしくは、複数の組み合わせで計算させて、合計が10になったものを検索するという計算式は可能でしょうか? よろしくお願いします。

  • 数字の並び替え方法について。

    どなたかご存じでしたらご教授願います。 下記の様に、エクセルシート5行×6列で1セル毎に数字が入っています。 01 12 13 16 27 39 02 08 10 25 34 40 06 07 21 30 38 41 05 20 23 29 36 43 04 17 22 26 35 42 これを、下記のように昇順に並び替える方法を教えてください。 01 02 04 05 06 07 08 10 12 ・・・・・ 40 41 42 43 手作業で1つずつ貼り付け直して昇順に並べるのが手間になってきたので、 何か自動でできる方法が知りたいです。 【注意事項】  (1)5×6のセル内の数字は毎回違いますし、数字の重複はありません。  (2)セル内に出てくる数字は、文字でも数字でもどちらでも構いません。  (3)使用するエクセルは2007です。 以上、よろしくお願いします。

  • エクセルで入力した数字を倍にするには?

    エクセルでセルに数字を入力したら自動的に倍にするには どうすればいいでしょうか? (例)5倍にしたい時 セルに200を入力すると自動的に1000になる様にすることは出来るでしょうか? また、現状、数字を入力してしまっています。 その数字を全て5倍にしたい場合どうすればいいでしょうか? 今の自分では一つ一つ計算して入力し直すぐらいしか出来ません。 かなりの量なので何かいい方法があれば教えて下さい。 よろしくお願いします。

  • エクセルの棒グラフの上に数字を入れる

    こんにちは。タイトルにある通りなのですが、エクセルで棒グラフを作成してそれぞれの棒グラフの上に数字を表示したいのですが自動的に数字が入る方法はありますか?そして、その数字が例えば1293という場合四捨五入して1300と表示する方法はありますか?ボックスを挿入してひとつひとつ数字を表示はわかるのですが、自動的に入る方法を教えて下さい。

  • 1つのセルの中にある2桁数字を入れ替える。

    どなたかご存じでしたら回答をよろしくお願いします。 【質問】  下記の【例】の様にエクセルの1つのセルのに2桁の数字が入っているとします。  2桁目と1桁目の数字を入れ替える方法が知りたいです。 【例】  (1)  3 → 30 :”03”を入れ替えて”30”となる。  (2) 10 → 01:”10”を入れ替えて”01”となる。  (3) 33 → 33:”33”を入れ替えて”33”となる。  (4) 43 → 34:”43”を入れ替えて”34”となる。 【注意事項】   ・2桁の数字は、1~43迄です。   ・使用するエクセルは2010です。 以上、よろしくお願いします。

  • エクセルでの、たし算方法は?

    私は計算と言うと エクセル位しか知らないんですが 今迄、使った事が、ありません で、現在、平均点の計算を、してるんですが 今迄は、3ケタの数字をメモ帳に入力 それを数十個入れた後、全部を足して 平均点を出してました ちなみに入力方法は 「a652 597 b484 417 c589 688 d477…」 なんですが、数字の前に アルファベットを入力してのは 入力数を分かり易くする為で 例えば「j600」迄の入力で、平均点を出す場合 いちいち、全部の数字の数を数えなくても “j”はアルファベットの10個目ですから 10×2で、合計20個で割ってました しかし、足し算は計算機を使用してましたから 入力ミスを、する時や時間が掛かる為 これをエクセルで出来ないかと考えました ハッキリ言って、数字を入力する時に 一緒に計算機で、同時計算をすれば、一番早いんですが 入力するのに時間が短く 計算機で同時計算の余裕がありません ただ、自分でもエクセルの使用方法を検索等で調べたんですが 私が分かったのは 1セル(?)の中に全ての文字を “+”で入れて合計を出す方法と セルの中に、数字を入れて 後からセルと“+”で合計する方法です でも、全ての数字と“+”では 1セルの中が見え難くなりますし 入力後にセルと“+”では二度手間で しかも、クリックの押し間違いが出る時があります そこで聞きたいんですが セルの中に数字を入れながら、自動で計算出来る… 又は、平均点も簡単捜査で出来る方法を 御存じないでしょうか?

  • 表示されてる数字だけをコピーカットする方法

    はじめまして。 現在、エクセルを使って販売管理票を作っているのですが、お客様に見せるものは一部途中の計算式をカットしてプリントしたいと考えています。 ですが、途中の枠をカットしてしまうとどうしても結果のセルの部分がエラーになってしまいます。 これは結果のセルが式で導き出された数字だからだと思うのですが… 表示されている数字だけを残して他をカットする方法を教えていただけないでしょうか? また、現在入力された数字に同じセル内で掛算をして計算結果を求めることはかのうでしょうか? たとえば、100と入力すると自動的に2で割った50と表示されるようにしたいのですが・・・ タイトルと違う質問も含まれていますが、ご存知の方はどうかよろしくお願いいたします。

  • Excel2007 自動でマイナス計算

    質問です。 Excelで自動的に負の数にしてくれる入力方法はあるのでしょうか? ユーザー定義で自動的に「-」は付けられるのですが 計算した場合は正の数になってしまいます。 計算時に、自動で負の数になってて欲しいのです。 例:10,000と入力→自動で-10,000 分かりづらい文章ですみません・・。

  • 0,1,2,3,4,5の6個の数字から、3個の数字

    0,1,2,3,4,5の6個の数字から、3個の数字を1つずつ取り出し、取り出した順に並べて数をつくる。 このとき、3桁の数になる確率を求めよ。 ーーーーーーーーーーーーーー という問題で解答の途中式を見ると、 確率の分母に当たる部分が 6P3 となっていました。 なぜ6C3では無いのでしょうか? 6C3だと思った理由は、 6C3を計算して3つ数字を選ぶと、問題文の「取り出した順に並べて数をつくる」という制限により自動的に順番が決まる と思ったからです。

  • エクセルで自動的に1~100まで数字を入れる方法

    エクセルで表を作りました。左端の縦一列に1~100まで数字を入れるとき、「1、2、3」と手入力するのではなく、自動的に1~100まで数字を入れるには、どうしたら良いですか?