| Φ+⟩
| ψ0⟩| ψ1⟩| ψ2⟩
| ψ0⟩
| ψ0⟩ = | 0 0 ⟩
| ψ1⟩
Hadamard-Gate는 첫 번째 큐 비트에 적용되며 다음과 같은 결과가 발생합니다.
| ψ1⟩ = ( H⊗ 나) | 0 0 ⟩ = H| 0 ⟩ ⊗ | 0 ⟩ = 12–√( | 0 ⟩ + | 1 ⟩ ) | 0 ⟩ = 12–√( | 0 0 ⟩ + | 1 0 ⟩ )
| ψ2⟩
이제 CNOT 게이트가 적용되고 두 번째 큐 비트를 뒤집지 만 첫 번째 게이트가 값이 1 인 경우에만 결과가 나타납니다.
| ψ2⟩ = 12–√( | 0 0 ⟩ + | 1 1 ⟩ )
이 마지막 상태 | ψ2⟩태그 된 상태이며 일반적으로 이러한 상황을 해결할 수있는 가장 자연스러운 방법입니다. 벨 상태는 초 고밀도 코딩 또는 순간 이동과 같은 많은 흥미로운 양자 알고리즘에서 발생합니다.
위의 접근 방식이 일반적인 의미에서 프로그래밍하는 것처럼 보이지는 않지만 게이트를 상태에 적용하는 것은 기본적으로 게이트 기반 양자 컴퓨터 프로그래밍 방식입니다. 고급 프로그래밍을 수행 할 수 있지만 명령을 게이트 응용 프로그램으로 변환 할 수있는 추상화 계층이 있습니다. IBM 양자 경험 인터페이스는 기능을 제공합니다.
Microsoft의 Q #과 같은 언어에서 위 예제는 다음과 유사 할 수 있습니다.
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]);
}
}
}
보다 자세한 버전 (측정 포함)은 여기에서 찾을 수 있습니다 : Microsoft : Quantum Program 작성 .