Kvantumspecifikus adattípusok
Ez a témakör a típust Qubit
ismerteti, valamint két másik típust, amelyek némileg a kvantumtartományra jellemzőek: Pauli
és Result
.
Qubit
Q# a qubiteket átlátszatlan elemekként kezeli, amelyek átadhatók mind a függvényeknek, mind a műveleteknek, de csak a célzott kvantumprocesszor natív utasításainak átadásával kezelhetők. Az ilyen utasítások mindig műveletek formájában vannak meghatározva, mivel a céljuk a kvantumállapot módosítása. A függvények által a kvantumállapot módosítására vonatkozó korlátozást annak ellenére, hogy a qubitek átadhatók bemeneti argumentumként, kényszeríti, hogy a függvények csak más függvényeket hívjanak meg, és ne tudjanak műveleteket meghívni.
A Q# kódtárak a belső műveletek standard készlete alapján vannak lefordítva, azaz olyan műveletekre, amelyek nem rendelkeznek definícióval a nyelven belüli implementálásukhoz. A célzáskor a végrehajtási célhoz natív utasításokat kifejező implementációkat a fordító összekapcsolja. A Q# program így egyesíti ezeket a műveleteket a célgép által meghatározott módon, hogy új, magasabb szintű műveleteket hozzon létre a kvantumszámítás kifejezéséhez. Ily módon Q# nagyon egyszerűvé teszi a kvantum- és hibrid kvantumklasszikus algoritmusok logikájának kifejezését, ugyanakkor nagyon általános a célgép struktúrája és a kvantumállapot megvalósítása tekintetében is.
Q# Önmagában Q# nincs olyan típus vagy szerkezet, amely a kvantumállapotot jelöli.
Ehelyett a qubit a kvantumszámítógép legkisebb címezhető fizikai egységét jelöli.
Ezért a qubit hosszú élettartamú elem, ezért Q# nincs szükség lineáris típusokra.
Ezért nem kifejezetten a (Q#) állapotra hivatkozunk, hanem azt írjuk le, hogy a program hogyan alakítja át az állapotot, például az és H
a műveletek X
alkalmazásával.
Ahhoz hasonlóan, ahogyan a grafikus árnyékoló program az egyes csúcspontokon történő átalakítások leírását gyűjti össze, a kvantumprogram Q# a kvantumállapotok átalakítását halmozja fel, ami teljesen átlátszatlan hivatkozásként jelenik meg a célgép belső szerkezetére.
A Q# programok nem képesek betekinteni a qubitek állapotába, így teljesen agnosztikusak azzal kapcsolatban, hogy mi a kvantumállapot, vagy hogyan valósul meg.
A programok inkább olyan műveleteket hívhatnak meg, mint Measure
a számítás kvantumállapotának megismerése.
Pauli
A típusértékek Pauli
egy qubites Pauli operátort adnak meg; a lehetőségek a következők PauliI
: , PauliX
, PauliY
és PauliZ
. Pauli
értékek elsősorban a kvantummérés alapjának megadására szolgálnak.
Eredmény
A Result
típus egy kvantummérés eredményét adja meg. Q# a legtöbb kvantumhardver tükrözése az egy qubites Pauli-operátorok termékeinek méréseivel; az Result
a Zero
azt jelzi, hogy a +1 eigenvalue mérése megtörtént, az a Result
pedig One
azt jelzi, hogy a -1 eigenvalue mérése megtörtént. Ez azt jelenti, hogy az eigenvalues értékeket az a hatalom jelöli, Q# amelyre a -1 fel van emelve.
Ez a konvenció gyakoribb a kvantum-algoritmusok közösségében, mivel közelebbről megfelel a klasszikus biteknek.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: