你当前正在访问 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 次幂的形式表示特征值。 这种约定在量子算法社区中更常见,因为它更接近于经典比特。