1
整数乗算およびバイナリ決定図の最上位ビット
ましょととの2つの2進数ビット、進数(長さの積の)と。積の最も正確なビットz_をます。xxxyyynnnz=x⋅y z=x⋅y z = x \cdot y\ 2n2n2nxxxyyyz2n−1z2n−1z_{2n-1}z=z2n−1…z0z=z2n−1…z0z = z_{2n-1} \ldots z_0 バイナリ決定図のモデル(特に読み取り専用分岐プログラム)でこの関数の複雑さを分析するために、場合に相当する式を探します。最初の明らかなことは、(とは2進数に対応する整数)です。入力ビットを一定に設定するとどうなるか直感的に知りたい。たとえば、との最上位入力ビットを0に設定すると、定数0関数が取得されます。ただし、重要度の低いビットは結果にそのような影響を与えません。z2n−1=1z2n−1=1z_{2n-1} = 1z2n−1=1⇔x⋅y≥22n−1z2n−1=1⇔x⋅y≥22n−1z_{2n-1} = 1 \Leftrightarrow x \cdot y \geq 2^{2n-1}xxxyyyxxxyyy 場合、入力ビットを修正するとどうなるかを確認するのに役立つ他の同等の式はありますか?2つの2進数の積を計算するための洗練された方法はありますか?それとも、この問題に対する他のアプローチがありますか?z2n−1=1z2n−1=1z_{2n-1} = 1