練習 - 使用 Copilot 執行量子程式

已完成

在本單元中,您將了解如何在 Azure Quantum 中使用 Copilot 來探索量子運算和量子程式設計。 Copilot 是 AI 支援的工具,可從您的提示產生 Q# 程式碼,並參與量子運算的交談。 您也可以執行程式碼,並要求 Copilot 說明量子運算概念。

若要開始探索 Azure Quantum 中的 Copilot 和編碼,請使用 [量子樣本] 下拉式清單中的其中一個範例。

執行量子程式

  1. 瀏覽至 Azure Quantum 中的程式碼

  2. 選取 [量子樣本],然後選取 [亂數產生器]。 下列程式碼會複製到程式碼視窗。

    /// # Sample
    /// Quantum Random Number Generator
    ///
    /// # Description
    /// This program implements a quantum ranndom number generator by setting qubits
    /// in superposition and then using the measurement results as random bits.
    import Microsoft.Quantum.Measurement;
    import Microsoft.Quantum.Intrinsic;
    
        operation Main() : Result[] {
            // Generate 5-bit random number.
            let nBits = 5;
            return GenerateNRandomBits(nBits);
        }
    
        /// # Summary
        /// Generates N random bits.
        operation GenerateNRandomBits(nBits : Int) : Result[] {
            // Allocate N qubits.
            use register = Qubit[nBits];
    
            // Set the qubits into superposition of 0 and 1 using the Hadamard
            // operation `H`.
            for qubit in register {
                H(qubit);
            }
    
            // At this point each has 50% chance of being measured in the |0〉 state
            // and 50% chance of being measured in the |1〉 state.
            // Measure each qubit and reset them all so they can be safely
            // deallocated.
            let results = MeasureEachZ(register);
            ResetAll(register);
            return results;
        }
    
  3. 選取 [記憶體內部模擬器]

  4. 選取執行

    • 結果會顯示在 [結果] 欄位中,而結果的長條圖會顯示在程式碼視窗下方。
    • 您可以移動 [選取嘗試次數] 的滑桿,以指定程式執行次數。
    • [嘗試] 欄位會顯示每次嘗試的結果。

若要使用不同的模擬器再次執行程式:

  1. 選取 [記憶體內部模擬器] 下拉式清單,然後選取 [Quantinuum H 系列模擬器]

  2. 選取嘗試次數 (目前限制為 20 次),然後選取 [執行]

    • 作業狀態會顯示在程式碼視窗的頂端。
    • 結果的長條圖會顯示在程式碼視窗的下方。 目前無法使用 Quantinuum H 系列模擬器取得每次嘗試的結果。

詢問 Copilot

您可以在 Azure Quantum 中提示 Copilot,以了解與量子相關的幾乎所有資訊。 例如,詢問 Copilot 下列問題,然後看看會發生什麼情況:

  • 「說明 MResetZ 作業」
  • 「撰寫糾纏兩個量子位元的 Q# 程式碼」
  • 「解釋量子干擾」
  • 「量子位元與傳統位元之間的差異為何?」