質問

ん違和感があり、以下の推論がお使いいただくことによってです。

めのソフトウエア:

  1. 二つの多項式

    A = a_0 + a_1 x + a_2 x^2 + ... + a_n x^n

    B = b_0 + b_1 x + b_2 x^2 + ... + b_n x^n

    き算出係数の製品

    AB = \sum _k = 0 ^ 2n ( \sum _ j = 0 ^ k (a_j b_{k-j}))x^k

    O(n log n ) ます。

  2. で二つのベクトル (a_0, ..., a_n)(b_0, ..., b_n) を計算することができ ベクトル v_i = \sum j = 0 ^ k ( a_j b_{k-j})O(n log n) 時間による埋め込みのベクトルがゼロのままにしてお)

  3. 以上のこを計算できるかもしれないドットの製品 A =(a_0, ..., a_n)B =(b_0, ..., b_n) である A.B = \sum_j=0 ^ n a_j b_jO(n log n) 時間による前処理のベクトルと言い B する B' = (b_n, b_{n-1}, ..., b_1, b_0) それをコンピューティングするこ畳み込みとして2.に O(n log n) ます。

場合は、上記の推論が正しいなら、その手段とし、マトリクス乗算の nxn マトリックス O(n^2 log n ) 時間を計算することにより、ドット製品 O(n log n) 時間 O(n) ます。

しかし、最高の実行時のための行列積の計算まであったかを知 O(n^2.4) このようなtrue,その手段の手順に1,2,3が間違っています。

役に立ちましたか?

解決

があり n^2 エントリに、 n このアルゴリズムが O(n^2 * n * log n) = O(n^3 log n).

最高のアルゴリズムとしてのド製品 O(n), ない O(n log n).このような理由から、ナイーブアルゴリズムの行列積の計算 O(n^3).( n^2 ドットの商品です O(n) ます。

他のヒント

なぜかで達成する手順3でを計算することのできるドットの製品をO(n log n)時間では知られているドットの製品で計算するにはO(n)時間がかかる?またステップ2のようにな線形時間ではなくO(n log n)ステップ?

また、結論にはO(n^2log n)に準拠していない論理的にいを受けることができなドットの製品にはO(n)時にABマトリクス---、私が知っている限りに履きにはO(n^2)ドット製品は、(一解析)O(n^3log n)では劣るものの標準的にはO(n^3).この不思議なO(n log n)ドット製品ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top