数学において、正の整数nを計算するための加算連鎖は、 1 からnまで続く自然数の数列で表され、その数列の各数は前の 2 つの数の和になります。加算連鎖の長さは、その数列のすべての数を表すのに必要な和の数であり、数列の濃度より 1 少ない数です。 [ 1 ]
例として、(1,2,3,6,12,24,30,31) は長さ 7 の 31 の加算チェーンです。
加算連鎖は、加算連鎖べき乗に利用できます。この方法では、整数指数を用いたべき乗を、指数に対する加算連鎖の長さに等しい回数の乗算で実行できます。例えば、31に対する加算連鎖を用いると、任意の数nの31乗を計算する際に、繰り返し乗算で必要な30回の乗算と、二乗によるべき乗で必要な8回の乗算の代わりに、わずか7回の乗算で済む方法が得られます。
最小長の加算チェーンを計算することは容易ではありません。一連の値のそれぞれを同時に形成するチェーンを見つけるという問題の一般化バージョンはNP完全です。[ 2 ]妥当な時間や少ないメモリ使用量を保証して、与えられた数に対して最小の加算チェーンを計算できる既知のアルゴリズムはありません。ただし、必ずしも最適ではない比較的短いチェーンを計算するいくつかの手法が知られています。[ 3 ]
比較的短い加算チェーンを計算する非常によく知られた手法の 1 つは、 2 乗による指数計算に似たバイナリ法です。この方法では、数に対する加算チェーンは、は、加算チェーンから再帰的に得られます。。 もし偶数であれば、1つの追加和で得られる。。 もし奇数の場合、この方法は 2 つの和を使用して計算することでそれを取得しますそして1を加える。[ 3 ]
加算連鎖を見つけるための因数分解法は、数の素因数分解に基づいています。代表される。番号がありますその主要な要素の1つとして、次に加算チェーンチェーンから始めることで取得できますそして、それにチェーンを連結してそれぞれの数値を乗算して修正する因数法と二進法の考え方は、任意の数を選択することで、ブラウアーのm進法に組み合わせることができる。(分割するかどうかに関わらず))、再帰的にチェーンを構築してチェーンを連結して(上記と同様に修正して)そして残りを加える。これらのアイデアをさらに改良すると、スライディングウィンドウ法と呼ばれる一連の手法が生まれる。[ 3 ]
させて最小値を表す長さの加算チェーンが存在する計算する知られているように、 どこは、 のバイナリ展開のハミング重み(1の数)です。[ 4 ]
追加チェーンを取得できます加算チェーンから追加の1つの合計を含めることによってそこから不等式が導かれる鎖の長さについてそしてしかし、これは必ずしも平等とは限らない。この方法で得られたものよりも短い鎖を持つ可能性がある。例えば、Knuthによって観察された。[ 5 ]は、鎖が短い、 となることによって最小これが起こる理由は[ 6 ]に続いて、など( OEISの配列A230528)。
ブラウアー連鎖またはスター加算連鎖とは、各項の計算に使用される加算が直前の項を使用する加算連鎖のことである。ブラウアー数とは、ブラウアー連鎖が最適となる数のことである。[ 5 ]
ブラウアーは、
どこでは最短の星鎖の長さです。 [ 7 ] 多くの値に対して、特に、それらは等しい: [ 8 ] l ( n ) = l * ( n ) 。しかし、Hansen は、 l ( n ) ≠ l * ( n )となるnの値が存在することを示した。例えば、n = 2 6106 + 2 3048 + 2 2032 + 2 2016 + 1では、l * ( n ) = 6110、l ( n ) ≤ 6109となる。そのような最小のnは 12509 である。
ショルツ予想(ショルツ=ブラウアー予想またはブラウアー=ショルツ予想とも呼ばれる)は、アーノルド・ショルツとアルフレッド・T・ブラウアーにちなんで名付けられた1937年の予想で、
この不等式は、ブラウアー数の一般化であるすべてのハンセン数に対して成り立つことが知られています。ニール・クリフトは、すべてのハンセン数が成り立つことをコンピュータで確認しました。はハンセンである(5784689はそうではない)。[ 6 ] クリフトはさらに、実際にはすべての人々のために[ 5 ]