量子特定數據類型

本主題描述此 Qubit 類型,以及兩種其他類型,這些類型與量子定義域稍有特定: PauliResult

量子位元

Q# 會將量子位視為可傳遞至函式和作業的不透明專案,但只能藉由將量子位傳遞至原生至目標量子處理器的指示來與其互動。 這類指令一律會以作業形式定義,因為它們的意圖是修改量子狀態。 雖然量子位可以當做輸入自變數傳遞,但函式無法修改量子狀態的限制,會強制要求函式只能呼叫其他函式,而且無法呼叫作業。

Q# 程式庫會針對一組標準的內建作業進行編譯,這表示在語言內沒有任何實作定義的作業。 以目標為目標時,以執行目標原生的指示表示它們的實作會由編譯程序連結。 因此,Q# 程式會結合目標電腦所定義的這些作業,以建立新的較高層級作業來表示量子計算。 如此一來,Q# 就能非常輕鬆地表達基礎量子及混合式量子 (傳統演算法) 的邏輯,同時使目標電腦及其對量子狀態的實現結構方面保持非常一般。

在 Q# 本身內,Q# 中不會有代表量子狀態的類型或結構。 相反地,量子位元代表量子電腦中最小的可定址實體單位。 因此,量子位元是長時間存留項目,所以 Q# 不需要線性類型。 因此,我們不會明確參考 內Q#的狀態,而是透過 和 HX作業應用,來描述程式如何轉換狀態。 類似於圖形著色器程式如何累積每個頂點的轉換描述,一個量子程式 Q# 會將轉換累積至量子狀態,以完全不透明的方式表示目標機器的內部結構。

某個 Q# 程式無法檢查量子位元的狀態,因此完全無從得知量子狀態是什麼,或是如何實現。 相反地,程式可以呼叫作業 (例如 Measure),以了解計算的量子狀態相關資訊。

Pauli

Pauli 類型的值會指定單一量子位元 Pauli 運算子;可能是 PauliIPauliXPauliYPauliZPauli 值主要用於指定量子測量的基礎。

結果

Result 類型會指定量子測量的結果。 Q# 會藉由在單一量子位元 Pauli 運算子的產品中提供量值來鏡像大部分的量子硬體;ZeroResult 指出已測量 +1 特徵,而 OneResult 表示已測量 -1 特徵。 也就是說,Q# 會以 -1 的次方來表示特徵。 此慣例在量子演算法社群中比較常見,因為其會更緊密地對應到傳統的位元。