3
数値アルゴリズムで数値の単項表現を使用しないのはなぜですか?
擬似多項式時間アルゴリズムは、入力値(大きさ)で多項式の実行時間を持ち、入力サイズ(ビット数)で指数関数の実行時間を持つアルゴリズムです。 たとえば、数値が素数であるかどうかをテストするには、2からまでの数値をループし、 modがゼロかどうかを確認する必要があります。modがO(1)時間かかる場合、全体的な時間の複雑さはO(n)になります。n − 1 nnnnn − 1n−1n-1nnn 私私i ただし、を入力の書き込みに必要なビット数とすると、(バイナリ)であるため、あり、問題の実行時間は指数関数的なO()になります。x = log n n = 2 x 2 xバツバツxx = ログnバツ=ログnx = \log nn = 2バツn=2バツn = 2^x2バツ2バツ2^x 私の質問は、入力単項表現を考慮する場合、常にあり、擬似多項式時間は多項式時間の複雑さに等しくなります。では、なぜこれを行わないのでしょうか?x = nnnnx = nバツ=nx=n さらに、ナップザックには擬似多項式時間アルゴリズムがあるため、をとることにより、ナップザックは結果として多項式になりますP = NPx = nバツ=nx=n