Microsoft Q#:旋转函数 R() 的问题
Microsoft Q# : problems with rotate function R()
最近在做量子计算的算法,遇到了一些问题。
由于量子位有可能被观察为 |1>
或 |0>
,旋转函数应该会改变每个量子位的状态,以便它们有更多或更少的机会在特定状态下进行测量。
在我的程序中,我将阿达玛变换应用于一个量子比特,然后将它在z轴上旋转角度θ(90°),这是为了使|0>
和[=的概率相等11=] measurement 然后轮换使得状态的probs |1> 100%
,但是还是不行。 |1>
的概率总是 50%,这不应该是。
这是我的代码:
operation Testing () : (Int)
{
body
{
mutable result = -1;
using (qubit = Qubit[1])
{
H(qubit[0]);
R(PauliZ, PI() / -2.0, qubit[0]);
//assertprob is a function to help test the probabilities of qubits in specific status
AssertProb([PauliZ], qubit, One, 0.5,"Measuring in conjugate basis did not give 50/50 results.", 1e-5);
//AssertProb([PauliZ], qubit, Zero, 0.5,"Measuring in conjugate basis did not give 50/50 results.", 1e-5);
let value = M(qubit[0]);
if(value == One)
{
set result = 1;
} else {
set result = 0;
}
ResetAll(qubit);
}
return result;
}
}
来自 Microsoft Q# documentation 的照片可能有助于解释球体结构。在 Hadamard 变换之后,量子位处于状态 [1/√2,1/√2]
,然后 -π/2
的旋转使其状态变为 [0,1]
.
(来源:microsoft.com)
绕 Pauli Z 轴旋转不会改变 Z 轴测量的测量概率。您可以这样想象它:
- 您的量子比特的初始状态在 Z 轴上为 +1。
- H 操作将其移动到 X 轴上的 +1。
- 绕 Z 轴的任何旋转都会使量子位的状态保持在 X-Y 平面中,这同样有可能在 Z 轴上测量为 0 或 1。
A pi/2 或 3pi/2 绕 Y 轴旋转将使状态回到 Z 轴。
最近在做量子计算的算法,遇到了一些问题。
由于量子位有可能被观察为 |1>
或 |0>
,旋转函数应该会改变每个量子位的状态,以便它们有更多或更少的机会在特定状态下进行测量。
在我的程序中,我将阿达玛变换应用于一个量子比特,然后将它在z轴上旋转角度θ(90°),这是为了使|0>
和[=的概率相等11=] measurement 然后轮换使得状态的probs |1> 100%
,但是还是不行。 |1>
的概率总是 50%,这不应该是。
这是我的代码:
operation Testing () : (Int)
{
body
{
mutable result = -1;
using (qubit = Qubit[1])
{
H(qubit[0]);
R(PauliZ, PI() / -2.0, qubit[0]);
//assertprob is a function to help test the probabilities of qubits in specific status
AssertProb([PauliZ], qubit, One, 0.5,"Measuring in conjugate basis did not give 50/50 results.", 1e-5);
//AssertProb([PauliZ], qubit, Zero, 0.5,"Measuring in conjugate basis did not give 50/50 results.", 1e-5);
let value = M(qubit[0]);
if(value == One)
{
set result = 1;
} else {
set result = 0;
}
ResetAll(qubit);
}
return result;
}
}
来自 Microsoft Q# documentation 的照片可能有助于解释球体结构。在 Hadamard 变换之后,量子位处于状态 [1/√2,1/√2]
,然后 -π/2
的旋转使其状态变为 [0,1]
.
(来源:microsoft.com)
绕 Pauli Z 轴旋转不会改变 Z 轴测量的测量概率。您可以这样想象它:
- 您的量子比特的初始状态在 Z 轴上为 +1。
- H 操作将其移动到 X 轴上的 +1。
- 绕 Z 轴的任何旋转都会使量子位的状态保持在 X-Y 平面中,这同样有可能在 Z 轴上测量为 0 或 1。
A pi/2 或 3pi/2 绕 Y 轴旋转将使状态回到 Z 轴。