1.搭建基础的量子电路

需要说明的是mindquantum和qiskit,paddlequantum不同,用到的量子门需要导入,还有一个就是mindquantum里面的CNOT门通过X(taget_qubits,control_qubits)实现,这里的目标位和控制位顺序同其它编程平台的不同,第一个参数是目标位,这里需要注意一下。

import numpy as np                                          # 导入numpy库并简写为np
from mindquantum.core.gates import X, Y, Z, H, RX, RY, RZ   # 导入量子门H, X, Y, Z, RX, RY, RZ
from mindquantum.core.circuit import Circuit     # 导入Circuit模块,用于搭建量子线路# 搭建第一个mind quantum 电路
print('Gate name:', X)
X.matrix()  # 获取X门对应的矩阵,以数组形式输出encoder = Circuit()                              # 初始化量子线路
encoder += H.on(0)                               # H门作用在第0位量子比特
encoder += X.on(1, 0)                            # X门作用在第1位量子比特且受第0位量子比特控制
encoder += RY({'theta':np.pi}).on(2)             # RY(theta)门作用在第2位量子比特,pi需要从np中导入,赋予theta的值为pi/2# print(encoder) # 以文本形式打印电路
encoder.summary()   # 总结Encoder量子线路
encoder.svg() #电路可视化

2.量子模拟器:主要是以下几个函数的应用

# 量子模拟器import numpy as np                             # 导入numpy库并简写为np
from mindquantum.simulator import Simulator    # 从mindquantum.simulator中导入Simulator类
from mindquantum.core.gates import X, H, RY, Measure # 导入相关的量子门以及量子测量(用于电路采样)sim = Simulator('projectq', 2)   #声明一个两比特的projectq模拟器,Simulator类可以指定三个参数,其中projectq是后端模拟器,2这里是量子比特数;还有一个参数是seed,默认是一个随机数,可以不用指定
sim                              #展示模拟器状态# 操作1:作用一个量子门到模拟器上
sim.apply_gate(H.on(0))
# 获取模拟器当前的量子态,ket默认为False
sim.get_qs(ket=True)# 重置模拟器的状态,相当于获得一个全新的模拟器
sim.reset()
sim.get_qs(ket=True)# 操作2: 将量子电路左右在量子模拟器上,需要首先构造一个量子电路# 构建量子电路,需要导入相关的门,这里就构造一个经典的制备bell态的电路吧
# 首先,构造量子电路,和Qiskit,paddle不同的是这里不需要在Circuit中指定量子比特数目,量子比特数目可以通过酉操作以及作用在哪一个比特上推测?
circ = Circuit()
circ += H.on(0)
circ += X(1,0) # 第一个参数是目标位,第二个参数是控制位
circ += Measure('q0').on(0)                 # 在0号量子比特作用一个测量,并将该测量命名为'q0'
circ += Measure('q1').on(1)                 # 在1号量子比特作用一个测量,并将该测量命名为'q1'
circ.svg()sim.reset()
result = sim.sampling(circ, shots=1000)  # 对上面定义的线路采样1000次
result.svg() # 打印出测量结果的SVG形式# 含参量子电路的采样,重点是在于为参数赋值
circ = Circuit()
circ += H.on(0)
circ += RY('theta1').on(1) # 第一个参数是目标位,第二个参数是控制位
circ += Measure('q0').on(0)                 # 在0号量子比特作用一个测量,并将该测量命名为'q0'
circ += Measure('q1').on(1)                 # 在1号量子比特作用一个测量,并将该测量命名为'q1'
circ.svg()sim.reset()
result = sim.sampling(circ, {'theta1':np.pi/2},shots=1000)  # 对上面定义的线路采样1000次
result.svg() # 打印出测量结果的SVG形式

学习代码过程中遇到的一个小问题:测量结果不知道哪边是高位?通过如下测试可以看出(mindquantum)中测量结果是从右往左读,依次对应q0,q1,q2的测量结果。

Mind quantum 基础知识学习笔记(1)相关推荐

  1. Python 基础知识学习笔记——NumPy

    Python基础知识学习笔记--NumPy 与 matlab 优秀的矩阵运算类似,python 提供了 numpy 库,这对熟悉 matlab 的用户来说非常友好.向量.矩阵和多维数组是数值计算中必不 ...

  2. Python 基础知识学习笔记——OpenCV(1)

    Python 基础知识学习笔记--OpenCV(1) OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,它轻量而且高效,被广泛的使用. 整理一下OpenCV学习笔记,以防忘记. 文章目录 Py ...

  3. Python基础知识学习笔记——Matplotlib绘图

    Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...

  4. python基础知识学习笔记(2)

    python基础知识学习笔记(2) 整理一下python基础知识,以防忘记 文章目录 python基础知识学习笔记(2) python简洁的一行代码 python简洁的一行代码 1.交换两个变量 # ...

  5. python基础知识学习笔记(1)

    python 基础知识学习笔记(1) 总结一下Python基础知识,以防忘记. 文章目录 python 基础知识学习笔记(1) 一.起步 1.python安装与编译环境 二.变量和简单数据类型 三.列 ...

  6. oracle数据库基础知识总结,oracle数据库基础知识学习笔记

    oracle数据库基础知识学习笔记 一.oracle数据库类型: Char:  字符型(最大长度2000,定长.不足时以空格补充) Varchar2:字符型 最大长度 4000,变长,实际长度由存储的 ...

  7. Python基础知识学习笔记(一)

    Python基础知识学习笔记(一) 文章目录 Python基础知识学习笔记(一) (一) 认识python 1.注释 2.变量及类型 3.关键字(标识符) (1)什么是关键字? (2)查看关键字 (3 ...

  8. opencv-python基础知识学习笔记

    opencv-python基础知识学习笔记 原博地址:https://www.cnblogs.com/silence-cho/p/10926248.html 目录: opencv-python基础知识 ...

  9. 图像基础知识学习笔记

    图像基础知识学习笔记 文章目录 图像基础知识学习笔记 前言 一.图像基础知识相关笔记 1.光学系统影响图像的结构主要包括什么? 2.常见噪声都有什么,其分类,及特点? 3.光圈,快门,景深? 4. I ...

最新文章

  1. Linux 文件夹详情,linux使用命令创建文件夹以及里面的文件,详情介绍
  2. UITableView注意点
  3. 200行代码,一行行教你自制微信机器人
  4. 你知道什么是数据科学?如何把数据变成产品么?
  5. UNIX:描述符和文件结构
  6. (chap7 确保WEB安全的HTTPS) HTTPS和SSL
  7. 记一次vue 普通异步请求微信二进制二维码 乱码 问题解决然后渲染
  8. 基于prometheus + grafana + mysql + Telegram 监控告警
  9. 自写函数的防抖和节流
  10. HTML5中Head内标签详解(一):meta标签
  11. 配置centos环境
  12. 1月3日 升 级gazebo7
  13. ubuntu文件系统知识
  14. OpenCV实现摄像机标定和像素转换,surf寻找特征点,FLANN匹配算子进行匹配
  15. Mysql计算同比环比(超详细)
  16. java operator overload_c++下的 overload operator
  17. Autoit 打开文件的几种方式(run/Fileopen/ShellExecute)
  18. 视觉测量系统实现尺寸测量的4个步骤
  19. 量化研究数据来源汇总
  20. 中国电视艺术家协会名誉主席赵化勇一行莅临蓝海彤翔参观指导

热门文章

  1. 微信小程序分销系统有哪些营销模式?看完你就秒懂了!
  2. 【不可不看】体感游戏的发展经历
  3. 网易视频云技术分享:linux软raid的bitmap分析
  4. 基于共现提取人民的民义人物关系
  5. Win10 宽带自动重连解决思路 针对宿舍网络波动
  6. uniapp一键翻卡牌 小程序appH5都支持
  7. [MySQL]复杂查询(进阶)
  8. SimpleDateFormat 原来支持自动转换日期顺延
  9. 2015小米校招【研发类】面试真题经验分享
  10. 无人便利店沿用超高频RFID技术将快速布局全国