利用Cirq实现Bell态的制备以及量子门的基本实现

1.利用cirq实现Bell态的制备 

# 引入 tensorflow 模块
import tensorflow as tf
import cirq

# 实例化qubit,cirq中的量子比特初始态为|0>态
q1,q2 = cirq.LineQubit(0),cirq.LineQubit(1)
# 实例化一个模拟器
simulator = cirq.Simulator()
# 创建一个量子电路,在量子比特q1、q2上分别添加H、X门
circuit = cirq.Circuit(cirq.H(q1),cirq.X(q2),cirq.CNOT(q1,q2),cirq.measure(q1),cirq.measure(q2))
# 以文本的形式输出电路
print(circuit)
# 使用量子模拟器对量子线路进行10次模拟测量
result = simulator.run(circuit,repetitions=10)
# 输出结果
print(result)

需要注意的是量子态初始化的方式,在此两个qubit,下标从0~1,运行结果如下:

0: ───H───@───M───
          │
1: ───X───X───M───
0=1011110100
1=0100001011

2.单量子比特门、单量子旋转比特门

# 创建一个量子电路,在量子比特q1、q2上分别添加Y、Z门
circuit_sample = cirq.Circuit(cirq.Y(q1),cirq.Z(q2))

# 单量子旋转比特门
circuit1 = cirq.Circuit(cirq.rx(0.3)(q1))

# 以文本的形式输出电路
print(circuit1)

print(circuit_sample)

3.CNOT、swap、Control-Y

# q1是目标位,q2是控制位,CNOT门的实现
circ = cirq.Circuit(cirq.X(q1).controlled_by(q2))
print(circ)
0: ───X───
      │
1: ───@───
# SWAP门的实现
circ = cirq.Circuit(cirq.SWAP(q1,q2))
print(circ)
# controlled-Y 门的实现,其中q1是控制位,q2是目标位
circ = cirq.Circuit(cirq.Y(q2).controlled_by(q1))
print(circ)
0: ───@───
      │
1: ───Y───

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值