Latihan Bagian 1 - Membuat generator bit acak kuantum

Selesai

Di unit sebelumnya, Anda belajar tentang blok penyusun dasar program Q#. Sekarang, Anda siap untuk menulis program kuantum pertama Anda. Dalam unit ini, Anda menulis program kuantum yang menghasilkan bit yang benar-benar acak.

Anda membangun generator angka acak kuantum Anda dalam dua langkah. Unit ini adalah langkah pertama, yaitu menghasilkan satu bit acak. Untuk menghasilkan bit acak, Anda mengalokasikan qubit dalam status $\ket{0}$, menempatkan qubit tersebut ke dalam status superposisi, lalu mengukur qubit untuk menghasilkan nilai bit acak dari 0 atau 1.

Membuat file program Q#

  1. Buka Visual Studio Code.
  2. Buka menu File , lalu pilih File Teks Baru untuk membuat file baru.
  3. Simpan file sebagai Main.qs.

Tulis kode Q# Anda untuk generator bit acak dalam Main.qs file.

Tentukan operasi Main

Operasi Main ini adalah titik masuk program Anda. Salin kode berikut ke dalam file Anda Main.qs :

operation Main(): Result{

    // Your code goes here

}

Mengalokasikan qubit

Untuk memulai, alokasikan satu qubit dengan perintah use. Dalam Q#, setiap qubit yang Anda alokasikan dengan use dimulai dalam keadaan $\ket{0}$ secara default. Untuk mengalokasikan satu qubit, salin kode berikut ke dalam program Anda:

operation Main(): Result{

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

Tempatkan qubit ke dalam keadaan superposisi

Pada titik ini, Anda tidak dapat menghasilkan bit acak dari qubit karena qubit berada dalam status $\ket{0}$. Jika Anda mengukur status qubit ini, pengukuran akan mengembalikan nilai bit 0 setiap kali.

Untuk menghasilkan bit acak dari pengukuran kubit, Pertama-tama Anda perlu memasukkan qubit ke dalam superposisi status $\ket{0}$ dan status $\ket{1}$. Untuk menempatkan qubit ke dalam status superposisi, terapkan operasi Hadamard ke qubit. Operasi Hadamard mengubah qubit dari status $\ket{0}$ menjadi superposisi yang sama dari status $\ket{0}$ dan $\ket{1}$.

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

Untuk menerapkan operasi Hadamard ke qubit Anda di Q#, gunakan H operasi:

operation Main(): Result{

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

Catatan

Saat Anda menerapkan operasi kuantum ke qubit di Q#, operasi tidak mengembalikan nilai. Sebagai gantinya, operasi memengaruhi status qubit.

Mengukur qubit

Karena qubit sekarang dalam status superposisi yang sama, ketika Anda mengukur qubit, Anda memiliki peluang 50% bahwa pengukuran mengembalikan 0 dan 50% kemungkinan pengukuran mengembalikan 1.

Untuk mengukur nilai qubit dalam Q#, gunakan M operasi dan simpan nilai pengukuran dalam result variabel:

operation Main(): Result{

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

Reset kubit

Dalam Q#, qubit harus dalam status $\ket{0}$ sebelum Anda dapat melepaskan qubit. Reset Gunakan operasi untuk mengatur ulang qubit ke status $\ket{0}$.

operation Main(): Result{

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

Mengembalikan hasil pengukuran

Terakhir, kembalikan hasil pengukuran dengan pernyataan return. Hasil ini adalah bit acak, baik 0 atau 1 dengan probabilitas yang sama. Salin kode berikut dalam file Anda Main.qs :

operation Main(): Result{

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

Jalankan program generator bit acak Anda

Anda membuat program Q# yang disebut Main.qs yang mengalokasikan qubit, menempatkan qubit ke dalam status superposisi yang sama, mengukur qubit, mengatur ulang qubit, lalu mengembalikan hasil pengukuran. Berikut adalah rekap kode Q# Anda:

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;
}

Catatan

Simbol // mewakili komentar opsional yang menjelaskan setiap langkah program. Komentar diabaikan oleh pengkompilasi.

Untuk menjalankan program Anda pada simulator yang terintegrasi, pilih lensa kode Jalankan di atas Main operasi, atau dengan menekan Ctrl + F5. Output Anda muncul di konsol debug di terminal.

Hasilnya adalah Zero atau One, masing-masing dengan peluang 50%. Nilai pengukuran bit ini pada komputer kuantum benar-benar acak. Jalankan program beberapa kali untuk melihat sendiri bagaimana hasilnya berubah.

Di unit berikutnya, Anda menggabungkan beberapa bit acak untuk mengimplementasikan bagian kedua dari generator angka acak kuantum Anda.