2

非常に大きな整数は、Java や C のように最もプリミティブな 'int' または 'long' 型の場合のように単純なバイナリ表現とは対照的に、数字の可変長配列としてメモリに格納されることがよくあります。これを念頭に置いて、計算できるアルゴリズムを知りたいです:

  1. 整数の桁に特定の基数を使用して BigInteger (または同等の任意精度の算術構造) として格納することがより効率的になる前に、整数が到達しなければならないカウント

  2. この大きな整数の桁を格納するのに最も効率的な基数はどれか。

「効率」について言及しました。これにより、私は主にそのような BigInteger が消費するスペースの量に関心があることを意味しますが、処理速度や時間の複雑さについてのコメントも聞きたいです.

4

2 に答える 2

0

生のバイナリ形式で格納されている場合、整数は最小のスペースを消費する必要があります (おそらくそれが小さな整数であり、データ型が広すぎて 128 ビットで 1 を格納できない場合を除きますlong long)。別の方法で保存してもメモリは節約されず、そのような整数の作業を容易にするために使用されます。

バイト単位の場合、これは 256' 基数 (バイトが保持できる限り 256 の可能な値) に変換されます。

于 2013-01-19T18:11:08.263 に答える
0
  1. BigInt は、ハードウェアで直接サポートされている整数型の 1 つよりも効率的ではありません。サポートされているものを直接使用できる場合は、それを使用してください。
  2. ハードウェアで最も効率的にサポートされているもの。おそらく 2 の累乗、または多くの場合同等のバイナリです。
于 2013-01-19T18:12:39.090 に答える