Supponendo che stai prendendo in considerazione un computer quantistico basato su gate, il modo più semplice per produrre uno stato coinvolto è quello di produrre uno degli stati Bell. Il seguente circuito mostra lo stato di Bell .| Φ+⟩
Esaminando , | ψ 1 ⟩ e | ψ 2 ⟩ possiamo determinare lo stato Entagled dopo l'applicazione di tutte le porte:| ψ0⟩| ψ1⟩| ψ2⟩
1. :| ψ0⟩
| ψ0⟩ = | 0 0 ⟩
| ψ1⟩
Hadamard-Gate si applica al primo qubit che si traduce in quanto segue:
| ψ1⟩ = ( H⊗ io) | 0 0 ⟩ = H| 0 ⟩ ⊗ | 0 ⟩ = 12-√( | 0 ⟩ + | 1 ⟩ ) | 0 ⟩ = 12-√( | 0 0 ⟩ + | 1 0 ⟩ )
| ψ2⟩
Ora viene applicato un gate CNOT e lancia il secondo qubit ma solo dove il primo ha il valore 1. Il risultato è
| ψ2⟩ = 12-√( | 0 0 ⟩ + | 1 1 ⟩ )
| ψ2⟩
Sebbene l'approccio di cui sopra potrebbe non sembrare una programmazione come al solito, applicare le porte agli stati è fondamentalmente come funziona la programmazione di un computer quantistico basato su gate. Esistono livelli di astrazione che ti consentono di eseguire una programmazione di alto livello ma traducono i comandi nell'applicazione di gate. L' interfaccia IBM Quantum Experience fornisce tali funzionalità.
In un linguaggio come il Q # di Microsoft, l'esempio sopra potrebbe essere simile al seguente:
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]);
}
}
}
Una versione più dettagliata (compresa la misurazione) è disponibile qui: Microsoft: Writing a Quantum Program .