|Φ+⟩
| ψ0⟩| ψ1⟩| ψ2)⟩ możemy określić Entagled stan po zastosowaniu wszystkich bram:
| ψ0⟩ :
| ψ0⟩ = | 0 0 ⟩
2) | ψ1⟩ :
Bramka Hadamarda ma zastosowanie do pierwszego kubita, co powoduje:
| ψ1⟩ = ( H⊗ Ja) | 0 0 ⟩ = H| 0 ⟩ ⊗ | 0 ⟩ = 12)-√( | 0 ⟩ + | 1 ⟩ ) | 0 ⟩ = 12)-√( | 0 0 ⟩ + | 1 0 ⟩ )
3) | ψ2)⟩:
Teraz stosowana jest bramka CNOT i odwraca drugi kubit, ale tylko tam, gdzie pierwszy ma wartość 1. Wynik jest
| ψ2)⟩ = 12)-√( | 0 0 ⟩ + | 1 1 ⟩ )
Ten ostatni stan | ψ2)⟩jest stanem uwikłanym i zwykle najbardziej naturalnym sposobem na uzyskanie takiej sytuacji. Stany dzwonu występują w wielu interesujących algorytmach kwantowych, takich jak kodowanie bardzo gęste lub teleportacja.
Chociaż powyższe podejście może nie wydawać się programowaniem w zwykłym znaczeniu, zastosowanie bramek do stanów jest w zasadzie sposobem programowania komputerowego komputera kwantowego. Istnieją warstwy abstrakcji, które umożliwiają wykonywanie programowania na wysokim poziomie, ale przekładają polecenia na zastosowanie bramek. Interfejs IBM Quantum Experience zapewnia takie funkcje.
W języku takim jak Q # Microsoftu powyższy przykład może wyglądać podobnie do tego:
operation BellTest () : ()
{
body
{
// Use two qubits
using (qubits = Qubit[2])
{
Set (One, qubits[0]);
Set (Zero, qubits[1]);
// Apply Hadamard gate to the first qubit
H(qubits[0]);
// Apply CNOT gate
CNOT(qubits[0],qubits[1]);
}
}
}
Bardziej szczegółową wersję (w tym pomiar) można znaleźć tutaj: Microsoft: Pisanie programu kwantowego .