Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini menjelaskan jenis Qubit, bersama dengan dua jenis lain yang agak spesifik untuk domain kuantum: Pauli dan Result.
Qubit
Q# memperlakukan qubit sebagai item buram yang dapat diteruskan ke fungsi dan operasi, tetapi hanya dapat berinteraksi dengan dengan meneruskannya ke instruksi yang asli untuk prosesor kuantum yang ditargetkan. Instruksi seperti itu selalu didefinisikan dalam bentuk operasi, karena niat mereka adalah untuk memodifikasi status kuantum. Pembatasan bahwa fungsi tidak dapat memodifikasi status kuantum, meskipun fakta bahwa qubit dapat diteruskan sebagai argumen input, diberlakukan oleh kebutuhan bahwa fungsi hanya dapat memanggil fungsi lain, dan tidak dapat memanggil operasi.
Pustaka Q# dikompilasi terhadap serangkaian operasi intrinsik standar, yang berarti operasi yang tidak memiliki definisi untuk implementasinya dalam bahasa. Setelah menargetkan, implementasi yang mengekspresikannya dalam hal instruksi yang asli dengan target eksekusi ditautkan oleh kompilator. Dengan demikian, program Q# menggabungkan operasi ini sebagaimana didefinisikan oleh komputer target untuk membuat operasi baru tingkat yang lebih tinggi untuk mengekspresikan komputasi kuantum. Dengan cara ini, Q# membuatnya sangat mudah untuk mengekspresikan algoritma kuantum dan klasik kuantum hibrida yang mendasar, sekaligus sangat umum sehubungan dengan struktur mesin target dan realisasi status kuantumnya.
Dalam Q# itu sendiri, tidak ada jenis atau konstruksi dalam Q# yang mewakili status kuantum.
Sebaliknya, qubit mewakili unit fisik terkecil yang dapat diatasi dalam komputer kuantum.
Dengan demikian, qubit adalah item berumur panjang, jadi Q# tidak perlu jenis linier.
Oleh karena itu, kami tidak secara eksplisit merujuk ke status dalam Q#, melainkan menggambarkan bagaimana status diubah oleh program, misalnya, melalui aplikasi operasi seperti X dan H.
Mirip dengan bagaimana program shader grafis mengakumulasi deskripsi transformasi ke setiap vertex, program kuantum di Q# mengumpulkan transformasi ke status kuantum, yang diwakili sebagai referensi buram sepenuhnya ke struktur internal mesin target.
Program Q# tidak memiliki kemampuan untuk introspeksi ke dalam keadaan qubit, dan dengan demikian sepenuhnya agnostik tentang apa itu status kuantum atau tentang bagaimana hal itu diwujudkan.
Sebaliknya, program dapat memanggil operasi seperti Measure untuk mempelajari informasi tentang status kuantum komputasi.
Pauli
Nilai jenis Pauli menentukan operator Pauli qubit tunggal; kemungkinannya adalah PauliI, PauliX, PauliY, dan PauliZ.
Pauli nilai digunakan terutama untuk menentukan dasar pengukuran kuantum.
Hasil
Jenis Result menentukan hasil pengukuran kuantum.
Q# mencerminkan sebagian besar perangkat keras kuantum dengan menyediakan pengukuran dalam produk operator Pauli qubit tunggal; ResultZero menunjukkan bahwa eigenvalue +1 diukur, dan ResultOne menunjukkan bahwa eigenvalue -1 diukur. Artinya, Q# mewakili eigenvalues oleh kekuatan yang -1 dinaikkan.
Konvensi ini lebih umum dalam komunitas algoritma kuantum, karena memetakan lebih dekat ke bit klasik.