这个问题涉及对多于一位作为输入的函数所讨论的 Deutsch 问题的直接概括。这一次,我们有一个布尔函数 f,它接受一个 4 位数字作为输入并输出 0 或 1,即f:{0,1}4→{0,1}
。因此,f 的输入是 16 个可能的 4 位二进制数之一:
0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111.
我们还被告知 f 是以下两种类型之一:
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 的电路并观察输出 f(x)。这称为“查询”操作。
证明经典概率算法可以通过使用 2 个查询以至少 2/3 的概率确定 f 是平衡的还是恒定的。
提示:(显然,我们不能使用确定性算法来做到这一点。除非确定性算法看到至少 9 个输入值的输出,否则它无法确定函数是平衡的还是恒定的)。
考虑从 16 个可能的输入集中均匀随机地选择两个输入。您的最终结果可能在概率上取决于这两个查询的结果。