Program yürütme
Aşağıdaki örnek, bir programın nasıl uygulandığına ilk bakışını Q# verir:
/// # Sample
/// Bell States
///
/// # Description
/// Bell states or EPR pairs are specific quantum states of two qubits
/// that represent the simplest (and maximal) examples of quantum entanglement.
///
/// This Q# program implements the four different Bell states.
namespace Sample {
open Microsoft.Quantum.Diagnostics;
open Microsoft.Quantum.Measurement;
@EntryPoint()
operation BellStates() : (Result, Result)[] {
// Allocate the two qubits that will be used to create a Bell state.
use register = Qubit[2];
// This array contains a label and a preparation operation for each one
// of the four Bell states.
let bellStateTuples = [
("|Φ+〉", PreparePhiPlus),
("|Φ-〉", PreparePhiMinus),
("|Ψ+〉", PreparePsiPlus),
("|Ψ-〉", PreparePsiMinus)
];
// Prepare all Bell states, show them using the `DumpMachine` operation
// and measure the Bell state qubits.
mutable measurements = [];
for (label, prepare) in bellStateTuples {
prepare(register);
Message($"Bell state {label}:");
DumpMachine();
set measurements += [(MResetZ(register[0]), MResetZ(register[1]))];
}
return measurements;
}
operation PreparePhiPlus(register : Qubit[]) : Unit {
ResetAll(register); // |00〉
H(register[0]); // |+0〉
CNOT(register[0], register[1]); // 1/sqrt(2)(|00〉 + |11〉)
}
operation PreparePhiMinus(register : Qubit[]) : Unit {
ResetAll(register); // |00〉
H(register[0]); // |+0〉
Z(register[0]); // |-0〉
CNOT(register[0], register[1]); // 1/sqrt(2)(|00〉 - |11〉)
}
operation PreparePsiPlus(register : Qubit[]) : Unit {
ResetAll(register); // |00〉
H(register[0]); // |+0〉
X(register[1]); // |+1〉
CNOT(register[0], register[1]); // 1/sqrt(2)(|01〉 + |10〉)
}
operation PreparePsiMinus(register : Qubit[]) : Unit {
ResetAll(register); // |00〉
H(register[0]); // |+0〉
Z(register[0]); // |-0〉
X(register[1]); // |-1〉
CNOT(register[0], register[1]); // 1/sqrt(2)(|01〉 - |10〉)
}
}
Bu program kuantum dolanıklığıyla ilgili dört temel Bell durumunu uygular ve Azure Quantum Görsel Kodu uzantısını içeren örnek programlardan biridir.
Programı VS Code QDK uzantısındaki yerleşik simülatörden çalıştırabilir ve standart çıkış alabilirsiniz
Message: Bell state |Φ+〉:
DumpMachine:
Basis | Amplitude | Probability | Phase
-----------------------------------------------
|00⟩ | 0.7071+0.0000𝑖 | 50.0000% | 0.0000
|11⟩ | 0.7071+0.0000𝑖 | 50.0000% | 0.0000
Message: Bell state |Φ-〉:
DumpMachine:
Basis | Amplitude | Probability | Phase
-----------------------------------------------
|00⟩ | 0.7071+0.0000𝑖 | 50.0000% | 0.0000
|11⟩ | −0.7071+0.0000𝑖 | 50.0000% | -3.1416
Message: Bell state |Ψ+〉:
DumpMachine:
Basis | Amplitude | Probability | Phase
-----------------------------------------------
|01⟩ | 0.7071+0.0000𝑖 | 50.0000% | 0.0000
|10⟩ | 0.7071+0.0000𝑖 | 50.0000% | 0.0000
Message: Bell state |Ψ-〉:
DumpMachine:
Basis | Amplitude | Probability | Phase
-----------------------------------------------
|01⟩ | 0.7071+0.0000𝑖 | 50.0000% | 0.0000
|10⟩ | −0.7071+0.0000𝑖 | 50.0000% | -3.1416
Result: "[(One, One), (Zero, Zero), (One, Zero), (Zero, One)]"
Finished shot 1 of 1
Q# simulation completed.
veya simülatörü histogram çıkışıyla çalıştırın
Programı kuantum donanımında çalıştırmak için öncelikle programın derlenmesi ve Azure Quantum'a gönderilmesi gerekir. Bunların tümü VS Code'un içinden yapılabilir. Tam uçtan uca işlem için bkz. Programları kullanmaya başlama Q# ve Visual Studio Code.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin