1 建立開發環境
1.1 安裝 Visual Studio Code
Visual Studio Code 官方下載下傳位址
1.2 安裝 .NET Core
.NET Core 官方下載下傳位址
1.3 為 Visual Studio Code 安裝 QDK
QDK 安裝官方位址
點選install進行安裝即可。
1.4 安裝 Quantum 項目模闆
在 Visual Studio Code 中,選擇 View -> Command Palette,輸入
Q#: Install project templates
等待一段時間。
1.5 為 Visual Studio Code 安裝 C#
在 Visual Studio Code 中,選擇左側欄中的方格圖示(Extensions),然後在搜尋框(Search Extensions in Marketplace)中輸入 C# 搜尋并安裝(install),安裝好後應如下圖所示。
2 建立一個hello項目
在 Visual Studio Code 中,選擇 View -> Command Palette,輸入
Q#: Create New Project
,選擇 Standalone console application,然後選擇一個存放項目檔案的路徑,通常使用 QuantumHello 作為項目名稱,建立項目。
随後視窗右下角将出現建立新項目成功…等字樣,如下圖所示,并選擇 Open new project.
選擇 View -> Explorer,會看到兩個檔案,即 QuantumHello.csproj 和 Program.qs,csproj 檔案定義項目配置,Program.qs 則是一個自動生成的基本的Q#程式,該程式将消息 “Hello quantum world!” 列印到控制台,無需修改,可以直接運作。
選擇 View -> Terminal,輸入
dotnet run
即可,運作成功則如下圖所示。
如果在上述過程中出現一些錯誤,例如下圖所示的情況,選擇 Yes 或 Install 即可。
如果還是不順利,可以嘗試下重新開機 Visual Studio Code 或者重新開機電腦。
3 寫一個量子随機正整數生成器程式
建立一個新項目,與第二步中建立項目的步驟相同,并将如下代碼替換到 Program.qs 中。該代碼的功能是根據給定的最小值 min 和最大值 max(都是正整數),随機生成一個在區間 [min,max] 的正整數。
namespace QuantumRNG {
open Microsoft.Quantum.Canon;
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Math;
open Microsoft.Quantum.Convert;
operation GenerateRandomBit() : Result {
// Allocate a qubit.
using (q = Qubit()) {
// Put the qubit to superposition.
H(q);
// It now has a 50% chance of being measured 0 or 1.
// Measure the qubit value.
return MResetZ(q);
}
}
operation SampleRandomNumberInRange(max : Int, min : Int) : Int {
mutable output = 0;
repeat {
mutable bits = new Result[0];
for (idxBit in 1..BitSizeI(max)) {
set bits += [GenerateRandomBit()];
}
set output = ResultArrayAsInt(bits);
} until (output >= min and output <= max);
return output;
}
@EntryPoint()
operation SampleRandomNumber() : Int {
let max = 500;
let min = 100;
Message($"Sampling a random number between {min} and {max}: ");
return SampleRandomNumberInRange(max, min);
}
}
運作情況:
注意:輸入
dotnet run
可以首次生成 Program.qs,如果沒有對 Program.qs 進行任何的改動,還想繼續運作,則無需重新生成它,輸入
dotnet run --no-build
即可。但若進行了代碼修改,則必須輸入
dotnet run
來重新生成。