Недавно я работал над алгоритмами квантовых вычислений, где столкнулся с некоторыми проблемами.
Поскольку существуют вероятности того, что кубиты будут наблюдаться как |1>
или |0>
, предполагается, что функция вращения изменяет состояние каждого кубита, так что может быть больше или меньше шансов для их измерения.в определенном состоянии.
В моей программе я применил преобразование Адамара к кубиту, а затем повернул его на угол θ (90 °) по оси z, который должен был равняться вероятности |0>
и |1>
измерение, а затем вращение сделали датчики статуса |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 # может помочь объяснить структуру сферы.После преобразования Адамара кубит находится в состоянии [1/√2,1/√2]
, а затем поворот -π/2
переводит его в состояние [0,1]
.