mathematicaで、「ある多重和を計算することに関する記述の方法などについて」、質問します。
(多少長くなります。ご容赦ください。)
多重和を計算するとき、例えば、
Sum[i*j, {i, 1, 2}, {j, 1, 3}]
と入力すれば、これは、
(i,j)=(1,1),(1,2),(1,3),(2,1),(2,2),(2,3)のそれぞれに対して、i*jを計算し、それらの和をとった結果が返されると思います。
それに関連して、今回は、あるリスト ls に対する関数で、
f[ls_]:=Sum[ lsに依存する何らかの式 , {ls[[1]], 1, a}, {ls[[2]], 1, b},………, {lsの最後の成分, 1, c}]
のようなものを構成したいと考えています。
(ただし、ここでのa,b,cはある自然数を表すものであるとします。)
(上に書いた例で書くと、f[{i,j}]=Sum[i*j, {i, 1, 2}, {j, 1, 3}]のようになります。)
ここで質問があります。
(質問) lsの長さが一定であれば、特に苦労なく、直接上の「, {ls[[1]], 1, a}, {ls[[2]], 1, b},………, {lsの最後の成分, 1, c}」の部分に、i,jのような変数(すなわち、lsの各要素を変数としたもの)と、それらの変数が動く範囲を指定すれば、f[ls_]を具体的に構成できると思います。しかしながら、 lsの長さが一定でないときには、どのようにしたらよいのかがよくわかりません。
もしもその構成方法をわかられる方がおられれば、教えていただけると大変ありがたく思います。
No.1ベストアンサー
- 回答日時:
リストに記号を保持する、というアプローチが余計に問題を難しくしている気がしますが、
とりあえず下記のように再帰を使うことで解決できます。
f[exp_, {x_}, {a_}] := Sum[exp, {x, 1, a}]
f[exp_, {x_, y__}, {a_, b__}] := Sum[f[exp, {y}, {b}], {x, 1, a}]
以下のように使います。
f[u*v*w, {u, v, w}, {2, 3, 4}]
→ 180
直接Sumの中に書くと下記の例に対応します。
Sum[i j k, {i, 1, 2}, {j, 1, 3}, {k, 1, 4}]
→ 180
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- 国産車 レクサスが日本でもLMを発売するようですが、価格予想として1600万程度と噂が? しかも素人の位置づ 4 2023/05/07 21:50
- その他(プログラミング・Web制作) ヒアドキュメントの書き方 4 2022/11/01 01:03
- DIY・エクステリア 中空用アンカーでモールダクトを固定 1 2022/11/27 00:48
- ルーター・ネットワーク機器 transix回線で契約、外部からIPv6でNASにアクセスしたい 1 2023/01/26 15:07
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- 工学 制御工学の問題について 1 2022/10/22 17:44
- ドライブ・ストレージ BUFFALO Linkstation のハードディスクが抜けない(取れない) 1 2022/12/13 00:51
- 輸入車 ヤナセで現行Eクラスを試乗させて貰って、シートが硬過ぎて体が痛くなったり、乗り心地が悪くて何が良いの 4 2023/02/18 08:12
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mathematicaに関する質問 Sumに...
-
量子コンピュータとか、量子コ...
-
チューリングマシンとオートマ...
-
数値計算の参考書についての質...
-
大学受験でタンジェントについて
-
離散数学
-
0.5時間などの時間計算の方法
-
1000分の3は何%ですか
-
logeの計算
-
1÷0の答えを教えて下さい
-
1000分の10の計算の仕方を教え...
-
1000円の3割の計算教えて下さい
-
10の0.3乗って??
-
20000円の3分の2の計算のしかた...
-
結果が負の帯分数になる計算
-
ExcelでLog10を自然数に直すには
-
kDaからbpへの変換について
-
繰り上がりを書く場所は?
-
土嚢1体で何m3入りますか?
-
付き合った日を1日から数える...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
量子コンピュータとか、量子コ...
-
計算方法について:人数の違うチ...
-
チューリングマシンとオートマ...
-
mathematicaに関する質問 Sumに...
-
パソコンをつなげて高性能化?
-
物理乱数と真性乱数の違いは何...
-
すばやく素因数分解する方法は?
-
チューリングマシン ...
-
数列の最後尾を先頭に繋げて作...
-
二位じゃダメなんですかのコン...
-
人工衛星などのコンピューター
-
6-7高校数学
-
確率 統計 検定
-
サーバーのアクセス数と負荷に...
-
評価関数の作成について
-
0.5時間などの時間計算の方法
-
1000分の3は何%ですか
-
付き合った日を1日から数える...
-
結果が負の帯分数になる計算
-
複写機を購入した購入と同時に6...
おすすめ情報