量子计算机q#语言,Q# 编程语言简介 - Azure Quantum | Microsoft Docs

Q# Quantum 编程语言

02/01/2021

本文内容

Q# 语言指南中详细介绍了有关 Q# 编程语言的所有所需知识。 与其他内容一样,我们的语言设计过程为开放源代码,我们欢迎你的参与。

有关 Q# 背后的基础和动机的更多背景信息,请参阅我们为什么需要 Q#?。

Q# 是 Quantum 开发工具包 (QDK) 中的随附内容。有关快速概述,请参阅什么是 QDK?。

什么是量子程序?

量子程序可以被视为一组特定的传统子例程,在调用时,可以与量子系统交互来执行计算;用 Q# 编写的程序不会直接对量子状态进行建模,而是描述传统控制计算机如何与量子比特交互。

这使我们完全不知道每台目标计算机上的量子状态是什么,这可能会根据不同计算机有不同的解释。

这一重要结果是,Q# 无法直接内省到量子比特的状态或量子机制的其他属性,这就保证了可在量子计算机上实际执行 Q# 程序。

相反,程序可以调用 Measure 等操作来从量子比特中提取传统信息。

分配后,可以将量子比特传递到操作和函数,也称为可调用对象。 在某种意义上,这是一个 Q# 程序可以对量子比特执行的所有操作;针对量子比特状态的所有直接操作都由内部可调用对象(例如 X 和 H)定义,也就是说,其实现不是在 Q# 中定义,而是由目标计算机定义的可调用对象。 这些操作实际执行的内容仅由我们用于运行特定 Q# 程序的目标计算机进行具体实现。

例如,如果在我们的全状态模拟器上运行程序,模拟器将对模拟的量子系统执行相应的数学运算。

但在将来,如果目标计算机是一台真实的量子计算机,那么在 Q# 中调用此类操作将指示量子计算机在实际的量子系统上执行相应的实际操作(例如精确定时的激光脉冲) 。

Q# 程序重新组合目标计算机定义的这些操作,以创建新的、更高级别的操作来表示量子计算。

由此,借助 Q# 可轻松地表达量子和混合量子传统算法的基础逻辑,同时对于目标计算机或模拟器的结构也具有普遍性。

下面的程序是一个简单的示例,它在 $\ket{0}$ 状态下分配一个量子比特,然后对其应用 Hadamard 运算 H并在 PauliZ 基础上测量结果。

@EntryPoint()

operation MeasureOneQubit() : Result {

// The following using block creates a fresh qubit and initializes it

// in the |0〉 state.

use qubit = Qubit();

// We apply a Hadamard operation H to the state, thereby preparing the

// state 1 / sqrt(2) (|0〉 + |1〉).

H(qubit);

// Now we measure the qubit in Z-basis.

let result = M(qubit);

// As the qubit is now in an eigenstate of the measurement operator,

// we reset the qubit before releasing it.

if result == One { X(qubit); }

// Finally, we return the result of the measurement.

return result;

}

我们的 Quantum Katas 详细地介绍了有关量子计算概念(例如常见的量子操作)以及如何操作量子比特的信息。 此外,还可以在内部操作和函数中找到更多示例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值