新手必看!2026 CCF昇思杯热身赛保姆级通关教程
新手必看!2026 CCF昇思杯热身赛保姆级通关教程
热身赛主要围绕 MindSpore Quantum 的基础接口展开,覆盖量子线路搭建、控制门、参数化线路、哈密顿量期望值、自动微分、测量采样、Trotter 展开和噪声模型等内容。这份答题攻略针对每道题给出了从思路到解题步骤的完整指引,助力参赛者快速上手MindSpore Quantum框架,高效通关。
大赛报名:
https://developer.huaweicloud.com/contest/quantum-computing2026.html
01 答题准备
热身赛为量子计算基础学习和编程演练,完成热身赛的前50名选手将有机会获得定制礼品和电子证书,数量有限,不容错过。
第一步:注册并完成华为云账号实名认证;
第二步:准备开发环境,详见本地安装使用MindSpore Quantum操作指导;(https://www.hiascend.com/forum/thread-0207195718388320048-1-1.html)
第三步:了解热身赛答题指南;
📖 热身赛题目文档下载:
https://ftp.cngb.org/pub/course/micos/mindspore/


https://www.koushare.com/live/details/52148
02 答题指导
题目1:制备一个量子线路 制备一个三比特量子线路,该线路包含三个量子比特(q0, q1, q2)。线路由以下三个门组成:
- 一个作用在 q1 比特上的 X 门。
- 一个 H 门,作用在 q2 比特上,受 q1 比特控制。
- 一个 X 门,作用在 q0 比特上,受 q1 和 q2 比特共同控制。

1、解题思路:
这道题考查的是如何在 MindSpore Quantum 中构建基础量子线路,特别是如何使用量子门的on方法来指定目标比特和控制比特。 on 方法: MindSpore Quantum 中几乎所有的量子门都继承自 BasicGate类,并拥有 on()方法。这个方法的第一个参数是目标比特的索引(一个整数),第二个可选参数是控制比特的索引(可以是一个整数,或者一个包含多个整数的列表)。 本题中,第一步没有控制位,第二步有一个控制位,第三步有两个控制位,因此正好覆盖了on()方法最常见的三种写法。 2、解题步骤:
1)对于作用在 q1 上的 X 门,目标比特是 1,没有控制比特,所以使用 X.on(1)。 2)对于作用在 q2 上、受 q1 控制的 H 门,目标比特是 2,控制比特是 1,所以使用 H.on(2, 1)。 3)对于作用在 q0 上、受 q1 和 q2 共同控制的 X 门,目标比特是 0,控制比特是 1 和 2。当有多个控制比特时,需要将它们的索引放在一个列表里作为on方法的第二个参数,所以使用 X.on(0, 1, 2)。 将这三步依次添加到 Circuit 对象中即可完成线路构建。 3、相关API文档:
👉 Circuit类:
👉 量子门模块(mindquantum.core.gates):
👉 BasicGate.on方法:
题目2:为量子线路添加控制比特 给定一个已有的量子线路 u1,在此例中是作用在 q0、q1、q2 上的三比特量子傅里叶变换线路 u1 = qft(range(3)),要求使用 q3 作为控制比特,将其转换为一个受控量子线路 u2。
也就是说,u1中的每一个量子门操作,在u2中都将受到q3的控制。只有当 q3 为 1 时,u1才会在 q0、q1、q2 上生效。

1、解题思路:
这道题主要考查 mindquantum.core.circuit.controlled() 函数的使用。这个函数非常方便,它可以将一个完整的量子线路(或者单个算符)整体添加上控制位。
controlled() 函数: 它接受一个参数 circuit_fn,表示需要被控制的对象,可以是一个 Circuit 实例,也可以是一个能够生成量子线路的函数。 该函数返回一个新的函数。这个新函数需要继续传入控制比特的索引,然后才会返回添加控制比特后的电路。 2、解题步骤:
1)题目已经给出了原始线路 u1 = qft(range(3))。 2)题目要求将 q3 添加为控制位。由于 u1作用在 q0、q1、q2(索引为 0、1、2),新添加的控制位 q3 的索引就是3。 3)先调用 controlled(u1)获取一个可以添加控制位的函数,再传入控制位索引 3 生成目标线路 u2。该函数会自动处理 u1中的所有门,为它们添加上索引为 3 的控制位。 3、相关API文档:
👉 controlled数:
题目3:量子线路的厄米共轭 给定一个量子线路,要求计算其厄米共轭(Hermitian Conjugate)线路。厄米共轭操作通常用匕首符号表示。对于一个量子线路 U = U_n ··· U_2 U_1,其厄米共轭线路为 U† = U_1† U_2† ··· U_n†。也就是说,线路中所有门的操作顺序会颠倒,并且每个门都被替换为其自身的厄米共轭门。 本题要求先按如下顺序构造原始线路:
- 在 q1 上作用 H 门。
- 在 q0 上作用 T 门。
- 构造一个被 q1 控制、作用在 q2 上的 X 门。
- 在 q2 上作用 S 门。
然后使用 dagger 求这条线路的厄米共轭。

1、解题思路 这道题考查的是如何获取一个量子线路的厄米共轭形式。MindSpore Quantum 提供了便捷的 mindquantum.core.circuit.dagger() 函数来完成这个任务。
dagger() 函数:
该函数接受一个 Circuit对象(或其他支持厄米共轭操作的对象,如算符)作为输入,并返回一个新的 Circuit对象,该对象即为输入线路的厄米共轭线路。它会自动处理门顺序的反转和每个门自身的厄米共轭替换。
需要注意的是,H 门和 CNOT 门是自身厄米共轭的;S门和 T 门的厄米共轭分别是它们的逆门。使用 dagger(circ)时,这些细节不需要手动处理。
2、解题步骤 1)首先,根据原始线路图示构建出 circ对象。这需要依次添加 H 门、T 门、受控 X 门和 S 门。
2)然后,直接调用 dagger(circ) 函数,将返回的厄米共轭线路赋值给 dag_circ。
3、相关API文档 👉 dagger 函数:
后续题目详解,请下载PDF文件查看

文档链接:https://qr61.cn/oxlATu/qTNtNxS
有任何疑问,请联系小助手
