Alıştırma 1. Bölüm - Kuantum rastgele bit oluşturucu oluşturma

Tamamlandı

Önceki ünitede bir Q# programının temel yapı taşları hakkında bilgi edinmişsinizdir. Artık ilk kuantum programınızı yazmaya hazırsınız. Bu ünitede, gerçekten rastgele bir bit oluşturan bir kuantum programı yazacaksınız.

Kuantum rastgele sayı oluşturucunuzu iki adımda oluşturursunuz. Bu ünite, tek bir rastgele bit oluşturmak için ilk adımdır. Rastgele bit oluşturmak için $\ket{0}$ durumunda bir kubit ayırır, bu kubiti süper konum durumuna koyar ve ardından kubiti ölçerek 0 veya 1 rastgele bit değeri üretirsiniz.

Q# program dosyasını oluşturma

  1. Visual Studio Code'u açın.
  2. Dosya menüsünü açın ve yeni bir dosya oluşturmak için Yeni Metin Dosyası'nı seçin.
  3. Dosyayı Main.qs olarak kaydedin.

Rastgele bit oluşturucu için Q# kodunuzu dosyaya Main.qs yazın.

Main İşlemi tanımlama

İşlem Main , programınızın giriş noktasıdır. Aşağıdaki kodu dosyanıza Main.qs kopyalayın:

operation Main(): Result{

    // Your code goes here

}

Kubit ayırma

Başlamak için use deyimini kullanarak bir kübit ayırın. Q# dilinde, ile use ayırdığınız her kubit varsayılan olarak $\ket{0}$ durumunda başlar. Tek bir kubit ayırmak için aşağıdaki kodu programınıza kopyalayın:

operation Main(): Result{

    // Allocate a qubit
    use q = Qubit();
}

Kubiti süper pozisyon durumuna yerleştirme

Bu noktada, kubit $\ket{0}$ durumunda olduğundan kubitten rastgele bir bit oluşturamazsınız. Bu kubitin durumunu ölçerseniz, ölçüm her seferinde 0 bit değeri döndürür.

Kubit ölçümünden rastgele bir bit oluşturmak için önce kubiti $\ket$ durumunun ve $\ket{0}{1}$ durumunun süper konumuna yerleştirmeniz gerekir. Kubiti süper pozisyon durumuna getirmek için kubite hadamard işlemi uygulayın. Hadamard işlemi kubiti $\ket$ durumundan $\ket{0}$ ve $\ket{0}{1}$ durumlarının eşit süper konumuna dönüştürür.

$$ H \ket{0} = \frac{1}{\sqrt{2}} (\ket{0} + \ket{1}) $$

Q# dilinde kubitinize Hadamard işlemi uygulamak için şu H işlemi kullanın:

operation Main(): Result{

    use q = Qubit();
    H(q);
}

Not

Q# dilinde bir kubite kuantum işlemi uyguladığınızda işlem değer döndürmez. Bunun yerine, işlemler kubitin durumunu etkiler.

Kubiti ölçme

Kübit artık eşit süperpozisyon durumunda olduğundan, kübiti ölçtüğünüzde, ölçümün 0 getirme olasılığı %50 ve 1 getirme olasılığı %50'dir.

Q# dilinde kubit değerini ölçmek için işlemini kullanın M ve ölçüm değerini değişkeninde depolayın result :

operation Main(): Result{

    use q = Qubit();
    H(q);
    let result = M(q);
}

Kubiti sıfırlama

Q# dilinde kubitin serbest bırakılabilmesi için önce $\ket{0}$ durumunda olması gerekir. Kubiti Reset $\ket{0}$ durumuna sıfırlamak için işlemini kullanın.

operation Main(): Result{

    use q = Qubit();
    H(q);
    let result = M(q);
    Reset(q);
}

Ölçüm sonucunu döndürme

Son olarak, return ifadesini kullanarak ölçüm sonucunu döndürün. Bu sonuç, eşit olasılığı olan 0 veya 1 rastgele bir bittir. Dosyanızda Main.qs aşağıdaki kodu kopyalayın:

operation Main(): Result{

    use q = Qubit();
    H(q);
    let result = M(q);
    Reset(q);
    return result;
}

Rastgele bit oluşturucu programınızı çalıştırma

Kubit ayıran, kubiti eşit süper pozisyon durumuna getiren, kubiti ölçen, kubiti sıfırlayan ve ardından ölçüm sonucunu döndüren adlı Main.qs bir Q# programı oluşturdunuz. Q# kodunuzun özetini aşağıda bulabilirsiniz:

operation Main() : Result {
    // Allocate a qubit.
    use q = Qubit();

    // Set the qubit into superposition of 0 and 1 using the Hadamard 
    H(q);

    // Measure the qubit and store the result.
    let result = M(q);

    // Reset qubit to the |0〉 state.
    Reset(q);

    // Return the result of the measurement.
    return result;
}

Not

simgesi, // programın her adımını açıklayan isteğe bağlı açıklamaları temsil eder. Yorumlar derleyici tarafından göz ardı edilir.

Programınızı yerleşik simülatörde çalıştırmak için işlemin üzerindeki Kod merceciniMain çalıştır'ı seçin veya Ctrl + F5 tuşlarına basın. Çıkışınız terminaldeki hata ayıklama konsolunda görünür.

Sonuç, ya Zero ya da One, her biri %50 şansla olur. Kuantum bilgisayardaki bu bitin ölçüm değeri gerçekten rastgeledir. Sonucun nasıl değiştiğini kendiniz görmek için programı birden çok kez çalıştırın.

Sonraki ünitede birden çok rastgele biti birleştirerek kuantum rastgele sayı oluşturucunuzun ikinci bölümünü uygulayacaksınız.