Angenommen, Sie überlegen sich einen Quantencomputer auf Gate-Basis. Der einfachste Weg, einen verschlungenen Zustand zu erzeugen, besteht darin, einen der Bell-Zustände zu erzeugen. Die folgende Schaltung zeigt den Glockenzustand .| Φ+⟩
Durch die Prüfung , | ψ 1 ⟩ und | ψ 2 ⟩ können wir die gewärmte Zustand nach Anwendung aller Tore bestimmen:| ψ0⟩| ψ1⟩|ψ2⟩
1. :| ψ0⟩
| ψ0⟩ = | 0 0 ⟩
| ψ1⟩
Das Hadamard-Gate gilt für das erste Qubit, was zu folgenden Ergebnissen führt:
| ψ1⟩ = ( H⊗ ich) | 0 0 ⟩ = H| 0 ⟩ & xotime ; | 0 ⟩ = 12-√( | 0 ≤ + | 1 ≤ ) | 0 ⟩ = 12-√( | 0 0 ⟩ + | 1 0 ⟩ )
| ψ2⟩
Nun wird ein CNOT-Gatter angelegt und kippt das zweite Qubit, jedoch nur dort, wo das erste den Wert 1 hat. Das Ergebnis ist
| ψ2⟩ = 12-√( | 0 0 ⟩ + | 1 1 ⟩ )
| ψ2⟩
Obwohl Ihnen der obige Ansatz nicht so vorkommt, als würden Sie normalerweise programmieren, funktioniert das Programmieren eines gate-basierten Quantencomputers im Grunde genommen, wenn Sie Gates auf Status anwenden. Es gibt Abstraktionsebenen, mit denen Sie eine übergeordnete Programmierung durchführen, die Befehle jedoch in die Anwendung von Gates übersetzen können. Die IBM Quantum Experience- Schnittstelle bietet solche Funktionen.
In einer Sprache wie Microsoft's Q # könnte das obige Beispiel ungefähr so aussehen:
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]);
}
}
}
Eine ausführlichere Version (einschließlich Messung) finden Sie hier: Microsoft: Writing a Quantum Program .