Giả sử bạn đang xem xét một máy tính lượng tử dựa trên cổng, cách dễ nhất để tạo ra trạng thái vướng víu là tạo ra một trong các trạng thái Bell. Các mạch sau đây cho thấy trạng thái Bell .| Φ+⟩
| ψ0⟩| ψ1⟩| ψ2⟩
| ψ0⟩
| ψ0⟩ = | 0 0 ⟩
| ψ1⟩
Cổng Hadamard áp dụng trên qubit đầu tiên dẫn đến kết quả như sau:
| ψ1⟩ = ( H⊗ tôi) | 0 0 ⟩ = H| 0 ⟩ ⊗ | 0 ⟩ = 12-√( | 0 ⟩ + | 1 ⟩ ) | 0 ⟩ = 12-√( | 0 0 ⟩ + | 1 0 ⟩ )
| ψ2⟩
Bây giờ một cổng CNOT được áp dụng và lật qubit thứ hai nhưng chỉ khi cổng thứ nhất có giá trị 1. Kết quả là
| ψ2⟩ = 12-√( | 0 0 ⟩ + | 1 1 ⟩ )
| ψ2⟩
Mặc dù cách tiếp cận ở trên có vẻ không giống như lập trình với bạn theo nghĩa thông thường, nhưng áp dụng các cổng cho các trạng thái về cơ bản là cách lập trình một máy tính lượng tử dựa trên cổng hoạt động. Có các lớp trừu tượng cho phép bạn thực hiện lập trình cấp cao nhưng dịch các lệnh sang ứng dụng của cổng. Các IBM Quantum Kinh nghiệm giao diện cung cấp các tính năng như vậy.
Trong một ngôn ngữ như Q # của Microsoft, ví dụ trên có thể trông giống như thế này:
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]);
}
}
}
Có thể tìm thấy phiên bản chi tiết hơn (bao gồm đo lường) tại đây: Microsoft: Viết chương trình lượng tử .