你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

特定于量子的数据类型

本主题介绍 Qubit 类型,以及两种对量子域有些特定的其他类型:PauliResult

量子比特

Q# 将量子比特视为可传递给函数和作的不透明项,但只能通过将量子比特传递给本机到目标量子处理器的说明来与之交互。 此类指令始终以作形式定义,因为它们的目的是修改量子状态。 尽管量子比特可以作为输入参数传递,但函数无法修改量子状态的限制是由要求函数只能调用其他函数且无法调用作强制实施的。

Q# 库是根据一组标准内部作编译的,这意味着在语言中没有定义其实现的作。 在设定目标时,以执行目标本机指令表示它们的实现由编译器链接。 因此,Q# 程序将目标计算机定义的这些作组合在一起,以创建新的更高级别的作来表达量子计算。 这样,Q# 可以轻松表达逻辑基础量子和混合量子经典算法,同时在目标计算机的结构及其实现量子状态方面也非常普遍。

在 Q# 本身中,不存在表示量子状态的 Q# 类型或构造。 相反,量子比特表示量子计算机中可寻址的最小物理单元。 因此,量子比特是一个生存期较长的项,因此 Q# 无需线性类型。 因此,我们不显式引用 Q#中的状态,而是通过应用 XH等作来描述程序如何转换状态。 与图形着色器程序如何累积每个顶点的转换描述类似,Q# 量子程序将转换累积到量子状态,表示为对目标计算机内部结构的完全不透明引用。

Q# 程序无法对量子比特的状态进行反省,因此完全无法了解量子态是什么或量子态的实现方式。 相反,程序可以调用诸如 Measure 之类的作来了解计算的量子状态的信息。

Pauli

Pauli 类型的值指定单量子位 Pauli 运算符;可能性是 PauliIPauliXPauliYPauliZPauli 值主要用于指定量子测量的基础。

结果

Result 类型指定量子度量的结果。 Q# 通过提供单量子比特 Pauli 运算符产品的度量来镜像大多数量子硬件;ZeroResult 指示测量了 +1 特征值,OneResult 指示测量了 -1 特征值。 也就是说,Q# 通过引发 -1 的力量来表示特征值。 此约定在量子算法社区中更为常见,因为它更贴近经典位。