没有合适的资源?快使用搜索试试~ 我知道了~
在PyQPanda中实现Shor算法.txt
20 下载量 182 浏览量
2019-07-23
09:11:48
上传
评论
收藏 6KB TXT 举报
温馨提示
试读
10页
《本源量子计算》课程最后一讲的代码实现,课程网址:https://ke.qq.com/course/413376?from=2&taid=3517226028519104
资源推荐
资源详情
资源评论
1.
from pyqpanda import *
import matplotlib.pyplot as plt
import math as m
2.
def plotBar(xdata,ydata):
fig,ax=plt.subplots()
fig.set_size_inches(6,6)
fig.set_dpi(100)
rects=ax.bar(xdata,ydata,color='b')
for rect in rects:
height=rect.get_height()
plt.text(rect.get_x()+rect.get_width()/2,height,str(height),ha="center",va="bottom")
plt.rcParams['font.sans-serif']=['Arial']
plt.title("Origin Q",loc='right',alpha=0.5)
plt.ylabel('Times')
plt.xlabel('States')
plt.show()
3.
def reorganizeData(measure_qubits,quick_meausre_result):
xdata=[]
ydata=[]
for i in quick_meausre_result:
xdata.append(i)
ydata.append(quick_meausre_result[i])
return xdata,ydata
from pyqpanda import *
import matplotlib.pyplot as plt
import math as m
2.
def plotBar(xdata,ydata):
fig,ax=plt.subplots()
fig.set_size_inches(6,6)
fig.set_dpi(100)
rects=ax.bar(xdata,ydata,color='b')
for rect in rects:
height=rect.get_height()
plt.text(rect.get_x()+rect.get_width()/2,height,str(height),ha="center",va="bottom")
plt.rcParams['font.sans-serif']=['Arial']
plt.title("Origin Q",loc='right',alpha=0.5)
plt.ylabel('Times')
plt.xlabel('States')
plt.show()
3.
def reorganizeData(measure_qubits,quick_meausre_result):
xdata=[]
ydata=[]
for i in quick_meausre_result:
xdata.append(i)
ydata.append(quick_meausre_result[i])
return xdata,ydata
4.
def gcd(m,n):
if not n:
return m
else:
return gcd(n,m%n);
5.
def MAJ(a,b,c):
circ=QCircuit()
circ.insert(CNOT(c,b))
circ.insert(CNOT(c,a))
circ.insert(Toffoli(a,b,c))
return circ
6.
def UMA(a,b,c):
circ=QCircuit()
circ.insert(Toffoli(a,b,c)).insert(CNOT(c,a)).insert(CNOT(a,b))
return circ
7.
def MAJ2(a,b,c):
if((len(a)==0)or(len(a)!=(len(b)))):
raise RuntimeError('a and b must be equal,but not equal to 0!')
nbit=len(a)
circ=QCircuit()
circ.insert(MAJ(c,a[0],b[0]))
for i in range(1,nbit):
circ.insert(MAJ(b[i-1],a[i],b[i]))
def gcd(m,n):
if not n:
return m
else:
return gcd(n,m%n);
5.
def MAJ(a,b,c):
circ=QCircuit()
circ.insert(CNOT(c,b))
circ.insert(CNOT(c,a))
circ.insert(Toffoli(a,b,c))
return circ
6.
def UMA(a,b,c):
circ=QCircuit()
circ.insert(Toffoli(a,b,c)).insert(CNOT(c,a)).insert(CNOT(a,b))
return circ
7.
def MAJ2(a,b,c):
if((len(a)==0)or(len(a)!=(len(b)))):
raise RuntimeError('a and b must be equal,but not equal to 0!')
nbit=len(a)
circ=QCircuit()
circ.insert(MAJ(c,a[0],b[0]))
for i in range(1,nbit):
circ.insert(MAJ(b[i-1],a[i],b[i]))
剩余9页未读,继续阅读
资源评论
贾作真时真亦贾
- 粉丝: 103
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功