6

1+2+...+nに等しいことがわかっていn(n+1)/2ます。

しかし、事前に知らない場合でも、プログラムで同じ結果を得ることができますか?

なぜそんな質問があるのか​​。

より複雑な状況を考えてみてください。

X1 + X2 + ... + Xk = n、ここでXiは整数で、>=0です。

の期待はX1^2+...Xk^2何ですか?

結果は一見しただけでは明らかではありません。期待値の(冗長な)数学的表現を作成したら、代数を減らすためのプログラムにそれをフィードしたいと思います。X1^2+...Xk^2

4

3 に答える 3

6

おそらく、コンピューター代数システム(CAS) について考えているのではないでしょうか? WolframAlphaは、バックエンドで Mathematica (非常に強力な CAS システム) を使用する無料のオンライン ソリューションです。ここで、式を計算/簡略化することがわかります: WolframAlpha

あなたの例は、非常に単純な明示的な式を持つ平方和n(n+1)(2n+1)/6です。より一般的には、Faulhaber の式を使用して を計算できSum of n^pます。

于 2011-08-11T14:06:33.163 に答える
4

さて、最初に質問の数学の部分についていくつか提案し、次にソフトウェア開発についていくつか提案します。

Marko Petkov·sek、Herbert S. Wilf、Doron Zeilbergerによる電子書籍「A=B」では、単なる多項式よりもさらに難しい総和の問題を解く (または解がないことを示す) ことを扱っています。Ian Wanless によるこの本のレビューは、すぐに読む価値があります。電子書籍は無料でダウンロードできますが、製本されたコピーは Amazon などから購入できます。

2004年のトランス。Greene と Wilfによる AMS 論文Closed Form Summation of C -finite Sequencesもオンラインで入手できます。

一般に、これらのアルゴリズムを実装するには基本的な CAS ソフトウェアが必要であり、そのようなソフトウェアを自分で開発することが目標のようです。MaximaAxiomなどのオープン ソース CAS (コンピューター代数ソフトウェア) パッケージのいくつかを調べて、関係する範囲の感触をつかむことをお勧めします。もちろん、対象を限定したアプリケーションは、これらのかなり成熟したハイエンド パッケージが実装するもののほんの一部でしか実行できない可能性がありますが、現在の質問の言い回しを考えると、より直接的な道筋を示すことはできないと思います。 .

式の「期待」がプロジェクトの範囲に含まれている場合、単なる代数操作に加えて、多くの複雑さが積み重なっています。確かに、期待値をサポートする確率密度関数を指定できる必要があり、おそらくいくつかの統合ソフトウェアが必要です (ただし、パラメータ化された分布の選択を制限すると、それらの分布のモーメントを検索するという単純化された問題につながる可能性があります)。ランダム変数の一見単純な式 (合計、最大/最小) が悪夢のようなケースの検討につながる可能性があるため、これは飛び込むのに特に優れたアプリケーションだと思います。これはコンピューターの忍耐力に適しています。

于 2011-08-11T17:07:00.373 に答える
1

EDIT、最近の投稿の明確化により。

博士号のチーム全体と数年を費やさない限り、手作りのソリューションでうまくいくことはありません. 私があなたにできる最善のアドバイスは、Mathematica (または他の) ライセンスを購入し、それをあなたのプログラムと連動させることです。

あなたが Lisp プログラマーなら、Maxima を使用することは別の潜在的な (これを無料にする) 解決策です。

加算アルゴリズムの最先端の背景知識が必要な場合は、このホワイト ペーパーから始めることをお勧めします。


X1+X2+...+Xk=n、ここで Xi は整数で >= 0 です。

X1^2+...Xk^2 の期待値は?

この種の問題は、紙の上でそれを行う方法を理解するために多くの人々を占有します.

k = 2 とします。X_1 + X_2 = n は、X_2 = n - X_1 を与えます。

したがって、計算される期待値はE = X_1^2 + (n - X_1)^2 = 2 X_1^2 -2n X_1 + n^2です。

これは読む

E = sum(p_k * (2 * k^2 - 2 * n * k + n^2), k = 0..infinity)

どこでp_k = Prob(X_1 = k)。この種の合計は、 によって異なりますがp_k、一般に計算が非常に困難です。この問題は、閉じた形式で積分を計算するよりもさらに難しいと言えます (利用可能な (しかし決定不可能な) Risch アルゴリズムを完全に実装するソフトウェアはありません)。

自分自身を納得させるために、例えば取ってください。p_k = 1 / (log(k) * k^4).

その式 (または式ジェネレーター) を見つけることは、少なくとも非常に難しい研究課題です。

于 2011-08-11T14:33:15.373 に答える