![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ちょっと数学的な問題を、パソコンで解きたいと思います。
合計が決まった数で、ある数の集まりの中からその和の組み合わせを求めたいのですが、何を使ってどのようにすればよいでしょうか。
ソフトは、Excel/Access/FileMakerがあります。
回答でなくても、自分ならこうやるよ、という意見も大歓迎です。
よろしくお願いします。
(例題)
{2550,1210,90150,110223,17112,142816,87442,14650,1701413,11788,4460,24180}の中で総和が1949096になる数の組み合わせは?
No.1ベストアンサー
- 回答日時:
すべての組み合わせについて合計を計算し、与えられた数と一致するか比較するプログラムを書いちゃいます。
InternetExplorerがあれば、JavaScriptが使えるはずなので、
それで書いてみます。下記の内容のファイルをたとえば、kumi.html
という名前で保存し、IEで開けば結果が表示されます。
<pre>
<script>
input="2550,1210,90150,110223,17112,142816,87442,14650,1701413,11788,4460,24180"
sum=1949096
data=new Array(20)
data=input.split(",")
n=data.length
//一応、入力値の解釈が正しいかどうか表示してみる。
for(i=0;i<n;i++){ document.writeln(i+" "+ data[i]) }
// curent_sum = Σ flag[i]*data[i]
// データ数分の和を計算する。flag[i]は、0か1の値をとる。
// 配列useをいろいろなパターンで生成することですべての組み合わせを調べる。
flag=new Array(n)
n_ans=0 //見つかった答えの数
ni_no_n_jou = Math.pow(2,n) //2^nとする言語が多いが、JavaScriptではMath.powを使う。
for(j=0;j<ni_no_n_jou;j++){
make_flag_array(j) //サブルーチン、下で定義されている。
cur_sum=0
for(i=0;i<n;i++){cur_sum += flag[i]*data[i] }
if(cur_sum==sum){ n_ans++; write_ans() }
}
function make_flag_array(j){
tmpj=j
for(i=0;i<n;i++) {
amari = tmpj % 2
flag[i]=amari
tmpj = (tmpj - amari)/2
}
}
function write_ans(){
document.writeln("答え("+n_ans+"): ")
for(i=0;i<n;i++){ document.write(" + "+flag[i]*data[i]) }
document.writeln()
}
</script>
</pre>
参考URL:http://tohoho.wakusei.ne.jp/js/math.htm#xMath,ht …
私はてっきりVBAを使った回答が来ると思っていましたが、JavaScriptとは度肝を抜かれました。
すばらしいです!有難うございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 正の約数の個数が20個である最小の自然数を求めよ」 という問題で、(□+1)×(△+1)=20となる 4 2022/07/26 11:58
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- 数学 中一数学の【最大公約数と最小公倍数】の問題です。 1問だけでも教えていただけると嬉しいです。 (1) 4 2022/08/01 10:19
- 数学 数学の質問です。 高校数学得意な人!お願いします! 8人のトーナメント戦の組み合わせは何通りか とい 5 2023/06/29 20:54
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 数学 数学1の問題がわかりません。 次の関数において、頂点の座標と、[]内のxの値に対するyの値を求めよ。 3 2023/02/13 00:36
- 統計学 Rを用いた「繰り返しがある直交表実験計画法」の分析方法 8 2023/08/01 17:58
- 数学 数学の問題を教えて下さい。 画像が問題です。 〈解説〉 平行四辺形は常に2本の縦線と2本の横線によっ 3 2023/05/01 19:21
- Excel(エクセル) エクセルの関数に関しての質問です。 5 2022/10/07 11:17
- 高校 数学Aの組み合わせの問題で、正八角形と一辺あるいは二辺を共有する三角形の個数を求めよ、という問題のや 2 2023/04/02 17:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
RegQueryValueExでの2バイト文字
-
【Excel VBA】10進数を2進数に...
-
POSTで配列のデータを渡す方法は?
-
Cのプログラムがどうしても動き...
-
エクセルVBA:日付データの変換...
-
テキストファイルの結合について
-
printfの%eで指数部分の桁数を...
-
linuxのシェルでファイル名に先...
-
ファイルに書き込めない/ファ...
-
C言語について
-
char str[256]の256の意味は?
-
エクセルシート名の制限を変更...
-
Excel 1セル当りの文字数が2...
-
UTF-8で5~6バイトになる文字コ...
-
DataGridViewの特定列に入力さ...
-
10Mバイトて文字数に すると何...
-
3バイト文字(UTF-8)をprintfで...
-
Excel VBA メール作成について ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
printfの%eで指数部分の桁数を...
-
エクセルVBA:日付データの変換...
-
linuxのシェルでファイル名に先...
-
int型(2バイト)データの分割
-
【Excel VBA】10進数を2進数に...
-
C#でのswitch文
-
データの値の近いものをグルー...
-
C言語 ファイル内のデータと入...
-
10個の実数に対する降順ソート...
-
C言語の構造体にてバブルソート...
-
'dataType' 引数を Null にする...
-
matlabのソースコードをpython...
-
C言語の勉強しています。すみま...
-
c言語での wavファイルの編集(...
-
テキストファイルの結合について
-
C言語についてです! 同じ年の...
-
sort関数でひらがなとカタカナ...
-
matlabでのRRI検出
おすすめ情報