この問題は、入力として 1 ビットを超える関数について説明したドイツ語問題の単純な一般化に関するものです。今回は、入力として 4 ビットの数値を取り、0 または 1 を出力するブール関数 f がありますf:{0,1}4→{0,1}
。したがって、f への入力は、可能な 16 の 4 ビット 2 進数の 1 つです。
0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111.
f は次の 2 つのタイプのいずれかであるとも言われています。
either f is a constant function, i.e., f(x) is the same for all 16 possible values of the input x, or
f is a balanced function, i.e., f(x) is 0 for exactly 8 of the possible 16 inputs and f(x) is 1 for the remaining 8 of the possible 16 inputs.
f の回路に入力 x を与え、出力 f(x) を観察することにより、f の回路を「ブラック ボックス」として使用することができます。これを「クエリ」操作と呼びます。
古典的な確率的アルゴリズムが、2 つのクエリを使用して、少なくとも 2/3 の確率で f が平衡または定数であるかどうかを判断できることを示します。
ヒント: (明らかに、決定論的アルゴリズムを使用してこれを行うことはできません。決定論的アルゴリズムが少なくとも 9 つの入力値の出力を確認しない限り、関数が平衡か定数かを調べる方法はありません)。
16 の可能な入力のセットから 2 つの入力を均一かつランダムに選択することを考えてみてください。最終的な結果は、これら 2 つのクエリの結果に確率的に依存する可能性があります。