2013-04-15 10 views
13

最初の行が1、1/2、1/3の場合.... 質問をサポートする画像は次のとおりです。 image for better description. http://s23.postimg.org/9k5w5h88b/algos.pngA [i、j] = j *(A [i-1、j + 1] -A [i-1、j])のとき、i番目の行の最初の要素を見つける最も効率的な方法は何ですか?

ナイーブO(n^2)アプローチより効率的なアプローチが存在しますか?

ベルヌーイ数を勉強すると、「Akiyama-Tanigawa algorithm」に達しました。

簡単な方法の1つは、結果を事前計算してテーブルに格納することです。ベルヌーイ数が非常に急速に増加するので、実際の目的では、より大きなnに対してベルヌーイ数は必要ありません。 Bernoulli(400) - その周辺 - (10^550)を考えてみましょう。

しかし、アルゴリズム的に見ると、O(n^2)よりも優れたアプローチがありますか?

+0

私はあなたのフィギュア画像をSOにアップロードすることをお勧めします。 – h22

+0

画像が追加されました: – Paagalpan

+0

編集中の写真のアイコンをクリックします(上部、{}の右側)。イメージがあなたのために大きく見える場合は、[こちら](http://meta.stackexchange.com/questions/165795/how-to-make-pictures-smaller)を参照してください。 – h22

答えて

4

最初の要素はBernoulli numbersのシーケンスを形成します。ベルヌーイ数の分子と分母は、それぞれA027641シークエンスとA027642シークエンスを使用して求められます。これらのシーケンスは両方とも、それぞれのページ上で閉包形式の合計を持ち、それらの項を計算するために使用できます。

関連する問題