介绍IBM的qiskit库是非常棒的Python量子模拟器
1 qiskit库:
========
1.1 目前IBM推出的qiskit是非常棒的Python量子模拟器。
1.2 量子学,我们国家目前世界领先,量子计算,量子计算机,量子通信逐步在应用,今天就是介绍python也能进入该领域,讲讲皮毛,一秒入门。
1.3 官网https://qiskit.org/ https://github.com/Qiskit
1.4 安装:pip install qiskit #官方推荐 sudo pip3.8 install qiskit #本机安装,太慢了 #本机实际安装 sudo pip3.8 install -i https://pypi.tuna.tsinghua.edu.cn/simple qiskit
2 说明:
=====
2.1 官网代码基于Jupyter Notebook。
2.2 本机是deepin-linux操作系统,python3.8和微软vscode编辑器。
2.3 想用matplotlib显示图片,需要额外安装:pip install pylatexenc #本机实际如下安装 sudo pip3.8 install pylatexenc
3 你好量子:
========
3.1 代码:1-hello_quantum.py代码#导入模块 from qiskit import QuantumCircuit from qiskit.tools.visualization import circuit_drawer import matplotlib.pyplot as plt #量子线圈设置 #新建一个量子线圈(线路图) qc = QuantumCircuit(2, 2) #在q0上设置h,qubit 0上的h,也可以设置在qubit 1 qc.h(0) # Add a CX (CNOT) gate on control qubit 0 and target qubit 1, putting # the qubits in a Bell state. #qubit 0和qubit 1设置控制开关,由0-1 #也可以有1-0设置 qc.cx(0, 1) # Add a Measure gate to see the state. qc.measure([0, 1], [0, 1]) #图片保存和展示 #文件名 picsave="1.png" #保存在根目录下 circuit_drawer(qc,output="mpl",filename=picsave) #根目录下 imge = plt.imread("/home/xgj/"+picsave) plt.imshow(imge) plt.show()
3.2 图
3.3 代码还可以写成:from qiskit import QuantumCircuit from qiskit.tools.visualization import circuit_drawer import matplotlib.pyplot as plt def build_bell_circuit(): qc = QuantumCircuit(2, 2) qc.h(0) qc.cx(0, 1) qc.measure([0, 1], [0, 1]) return qc bell_circuit = build_bell_circuit() #文件名 picsave="1-1.png" #保存在根目录下 circuit_drawer(bell_circuit,output="mpl",filename=picsave) #根目录下 imge = plt.imread("/home/xgj/"+picsave) plt.imshow(imge) plt.show()
4 傅里叶变换函数qft:
================
4.1 qft.py代码:import math from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit from qiskit.tools.visualization import circuit_drawer import matplotlib.pyplot as plt # 定义量子傅里叶变换函数qft def qft(circ, q, n): for j in range(n): for k in range(j): # 套用傅里叶就换 circ.cp(math.pi/float(2**(j-k)), q[j], q[k]) circ.h(q[j]) # 量子比特数量 n = 3 q = QuantumRegister(n) c = ClassicalRegister(n) # 定义量子电路,后面可以可视化 qft_n = QuantumCircuit(q, c) qft(qft_n, q, n) for i in range(n): qft_n.measure(q[i], c[i]) #文件名 picsave="2.png" #保存在根目录下 circuit_drawer(qft_n,output="mpl",filename=picsave) #根目录下 imge = plt.imread("/home/xgj/"+picsave) plt.imshow(imge) plt.show()
4.2 图
5 通信关系:
========
5.1 代码:commutation_relation.pyfrom qiskit import QuantumCircuit from qiskit.transpiler import PassManager from qiskit.transpiler.passes import CommutationAnalysis, CommutativeCancellation from qiskit.tools.visualization import circuit_drawer import matplotlib.pyplot as plt circuit = QuantumCircuit(5) circuit.cx(0, 1) circuit.cx(2, 1) circuit.cx(4, 3) circuit.cx(2, 3) circuit.z(0) circuit.z(4) circuit.cx(0, 1) circuit.cx(2, 1) circuit.cx(4, 3) circuit.cx(2, 3) circuit.cx(3, 2) #print(circuit) #终端画图 pm = PassManager() pm.append([CommutationAnalysis(), CommutativeCancellation()]) new_circuit = pm.run(circuit) #print(new_circuit) #终端画图 #文件名 picsave1="3-1.png" circuit_drawer(circuit,output="mpl",filename=picsave1) picsave2="3-2.png" circuit_drawer(new_circuit,output="mpl",filename=picsave2) #根目录下 imge1 = plt.imread("/home/xgj/"+picsave1) imge2 = plt.imread("/home/xgj/"+picsave2) plt.imshow(imge1) plt.imshow(imge2)
5.2 图:
6 量子隐形传态:
============
6.1 代码:quantum teleportation.pyfrom qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit from qiskit.tools.visualization import circuit_drawer import matplotlib.pyplot as plt coupling_map = [[0, 1], [0, 2], [1, 2], [3, 2], [3, 4], [4, 2]] q = QuantumRegister(3, "q") c0 = ClassicalRegister(1, "c0") c1 = ClassicalRegister(1, "c1") c2 = ClassicalRegister(1, "c2") qc = QuantumCircuit(q, c0, c1, c2, name="teleport") qc.u(0.3, 0.2, 0.1, q[0]) qc.h(q[1]) qc.cx(q[1], q[2]) qc.barrier(q) qc.cx(q[0], q[1]) qc.h(q[0]) qc.measure(q[0], c0[0]) qc.measure(q[1], c1[0]) qc.barrier(q) qc.z(q[2]).c_if(c0, 1) qc.x(q[2]).c_if(c1, 1) qc.measure(q[2], c2[0]) #文件名 picsave="4.png" #保存在根目录下 circuit_drawer(qc,output="mpl",filename=picsave) imge = plt.imread("/home/xgj/"+picsave) plt.imshow(imge) plt.show()
6.2 图:
7 备注:
=====
7.1 源代码来自github,进行代码的修改和图形可视化,谢谢作者和官网的来源。
7.2 简单介绍到这里,喜欢的点个赞,加油,中国量子力学。
图文揭秘孕妈妈在吃饭时,肚子里的宝宝在干嘛?网友小馋货每个怀孕之后的孕妈妈,都会对自己的饮食格外注意,每天都要吃各种有营养的食物,以保证肚子里的宝宝能够更好地发育。很多原本为了控制身材不敢多吃的孕妈妈,也都放弃了外形的保持,听说什么有
搞笑一刻星期一下午下课后,我和好朋友陈致远一前一后走向卫生间。刚走到走廊上,就看见科学老师缓缓走了过来,还在美美地吸着一根香烟。陈致远突然眼睛一亮,居然模仿起了科学老师吸烟的动作。那一刻,
小孩子的小聪明,小搞笑该不该夸奖?前两天跟大姑姐视频,她家老二刚四周岁,一个非常聪明,嘴特别甜的小丫头,每次视频都是舅妈好,舅妈漂亮,她妈妈问她你和姐姐谁漂亮时候,总是说姐姐漂亮,因为特别聪明,也特别会来事,大家也
每日一悦渣女是怎样玩弄男人的呢?1背后的故事令人暖心,学校怕你们多玩游戏坐久了对身体不好2懂了这就去考全系前几3对对对简直一模一样4发量的人生历程5那完犊子了6钱还在吗?不在了7师傅我的心冷了8为了反诈骗也是操碎
家有倒霉蛋之外出就餐篇打卡美好生活七月天气有点炎热,学生也都放暑假了,我们是卖文具类的,所以网店的生意也开始进入淡季了!精明能干的老公和我这个小迷糊决定今天晚上外出就餐,吃烤肉了。晚上7点,我们做电梯上
少年们不要急,瘦身的好办法来啦肥胖的出现,困惑了很多的成年人未成年人。它带来的不仅是身边人的嘲笑另类的眼光,还有身体上的不适,生理上的烦恼。但是目前,青少年的肥胖率越来越高,这样下去,很容易造成关节负担太重,导
家有倒霉蛋之家用电器进阶篇1打卡美好生活新婚不久,网店生意还算不错!这一天,精明能干的老公和小迷糊紫妍,决定晚上去吃夜宵!现在紫妍的体重还在110左右,不想5年后的体重已经飚升到140了!悲催!当然这是后话了
由零食引发的问题小妞一岁过后,每每看到她对零食渴望的眼神,身为老母亲的我终于忍不住,精心为她挑选了几款认为适合她的零食手指饼小馒头无添加的米饼等。还记得她第一次拿手指饼的表情,那种兴奋的劲也记得第
如何帮助宝宝的语言发展孩子说话比较晚,爸爸妈妈都会以为孩子什么地方出现了问题,但是却没有反省,是不是自己的教育方法不对。比如小朋友需要什么,只要动动手,不用开口表达,爸爸妈妈就会帮她拿过来。在这样的环境
因为教我写作业妈妈被爸爸打进医院教育分歧,如何避雷?当下,陪孩子写作业已成了一个让很多爸妈无比头痛的世纪大难题。而最近,陪写作业系列又升级了,惊动了医生和警察,也让大家惊掉了下巴。据报道,在江苏常州,因为孩子的作业,一对父母竟大打出
小寒节气多泡脚,来年疾病少!脚是人体第二颗心脏你知道吗?2021年1月5日,小寒节气已到,小寒是一年中最苦寒的时节,此时,北风凉,雨雪雳,梅花凌寒独自开。小寒,一个小字,似乎将隆冬的寒气化解了许多。小小的寒,人间尚未到最严寒的时候。但其