你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
特定于量子的数据类型
本主题介绍了 Qubit
类型,还介绍了有点特定于量子域的其他两个类型:Pauli
和 Result
。
量子比特
Q# 将量子比特视为不透明项,可以传递给函数和运算,但只能通过将它们传递给目标量子处理器的本机指令来与之交互。 此类指令始终以运算的形式定义,因为它们的意图是修改量子状态。 要求函数只能调用其他函数而不能调用运算,强制实施尽管可将量子比特作为输入参数传递,函数也不能修改量子状态这一限制。
Q# 库是针对一组标准的内在运算(未为语言中的实现提供定义的运算)编译的。 在指定目标时,根据执行目标的本机指令表示这些运算的实现将由编译器链接。 因此,Q# 程序组合目标计算机定义的这些运算,以创建新的、更高级别的运算来表示量子计算。 这样,借助 Q# 可十分轻松地表达量子和混合量子传统算法的基础逻辑,同时对于目标计算机及其量子状态实现的结构也很有普遍性。
在 Q# 本身内部的 Q# 中,没有任何类型或构造表示量子状态。
一个量子比特表示量子计算机中最小的可寻址物理单元。
因此,量子比特是一个生存期很长的项,Q# 不需要线性类型。
因此,我们不会在 Q# 中显式引用状态,而是描述程序如何变换状态,例如,通过应用 X
和 H
之类的运算。
类似于图形着色器程序累积每个顶点的变换描述,Q# 中的量子程序累积量子状态的变换,这些状态表示为对目标计算机内部结构的完全不透明引用。
Q# 程序无法内省量子比特的状态,因此完全不知道量子状态是什么或如何实现某种状态。
程序可以调用 Measure
之类的运算来获知有关计算量子状态的信息。
Pauli
类型 Pauli
的值指定单量子比特 Pauli 运算符;可能的值为 PauliI
、PauliX
、PauliY
和 PauliZ
。
Pauli
值主要用于指定量子度量基础。
结果
Result
类型指定量子测量的结果。
Q# 通过在单量子比特 Pauli 运算符的生成结果中提供测量来反映大多数量子硬件;值为 Zero
的 Result
表示测量了 +1 特征值,值为 One
的 Result
表示测量了-1 特征值。 也就是说,Q# 以 -1 次幂的形式表示特征值。
这种约定在量子算法社区中更常见,因为它更接近于经典比特。