量子比特和通常的数字形式的门直接来自维基百科

pyqbit的Python项目详细描述


皮卡比特 量子比特和通常的数字形式的门直接来自维基百科。 ##应用 将门应用于状态

例如,此链的计算结果为零:

>>> from functools import reduce
>>> s = reduce( apply, [Zero(), H(), PauliZ(), H(), PauliX()])
>>> Measure.one(s)
0

交换一下位置

>>> one = Combine(Zero(), One())
>>> Measure.one(one)
1
>>> one
array([[0],
       [1],
       [0],
       [0]])
>>> two = apply(one, SWAP())
>>> Measure.one(two)
2
>>> two
array([[0],
       [0],
       [1],
       [0]])

量子比特定义

零 每次计算为零的量子位

>>> Zero
|0>
>>> Zero()
array([[1],
       [0]])
>>> Measure.one(Zero())
0

一个 每次计算为1的量子位

>>> One
|1>
>>> One()
array([[0],
       [1]])
>>> Measure.one(One())
1

加上 平均计算为1和0的量子位

>>> Plus
|+>
>>> Plus()
array([[0.70710678],
       [0.70710678]])

减 平均计算为1和0的量子位

>>> Minus
|->
>>> Minus()
array([[ 0.70710678],
       [-0.70710678]])

测量 模拟量子位的测量过程

>>> Measure.one(One())
1

联合收割机 使用两个数组的Kronecker积来组合量子比特。在

>>> Combine(Zero(),Zero())
array([[1],
       [0],
       [0],
       [0]])
>>> from functools import reduce
>>> reduce(Combine, [One(), Zero(), Zero()])
array([[0],
       [0],
       [0],
       [0],
       [1],
       [0],
       [0],
       [0]])

每一行表示作为结果获得其索引值的概率

>>> Measure.one(Combine(Zero(),Zero()))
0
>>> Measure.one( Combine(One(), Combine(Zero(),Zero())) )
4

相等 如果两个量子位状态相同,则相等是一个测试

>>> equal(One(), One())
True
>>> equal(One(), Zero())
False

量子门

身份 身份门

>>> Identity
Identity
>>> Identity()
array([[1, 0],
       [0, 1]])

################H 哈达玛门

>>> H
H
>>> H()
array([[ 0.70710678,  0.70710678],
       [ 0.70710678, -0.70710678]])

泡利克斯 保利X门

>>> PauliX
X
>>> PauliX()
array([[0, 1],
       [1, 0]])

保利 保利Y门

>>> PauliY
Y
>>> PauliY()
array([[ 0.+0.j, -0.-1.j],
       [ 0.+1.j,  0.+0.j]])

泡利兹 保利Z门

>>> PauliZ
Z
>>> PauliZ()
array([[ 1,  0],
       [ 0, -1]])

相位 相位(S,P)门

>>> Phase
P
>>> Phase()
array([[1.+0.j, 0.+0.j],
       [0.+0.j, 0.+1.j]])

################R R是自定义相移门

>>> from math import pi
>>> R(pi/4)
R(0.7853981633974483)
>>> R(pi/4)()
array([[1.        +0.j        , 0.        +0.j        ],
       [0.        +0.j        , 0.70710678+0.70710678j]])

####不 CNOT是受控非门(CX)

>>> CNOT
CX
>>> CNOT()
array([[1, 0, 0, 0],
       [0, 1, 0, 0],
       [0, 0, 0, 1],
       [0, 0, 1, 0]])

卡普利兹 CPauliZ是受控的pauliz门(CZ)

>>> CPauliZ
CZ
>>> CPauliZ()
array([[ 1,  0,  0,  0],
       [ 0,  1,  0,  0],
       [ 0,  0,  1,  0],
       [ 0,  0,  0, -1]])

交换 交换是qbit交换门

>>> SWAP
SWAP
>>> SWAP()
array([[1, 0, 0, 0],
       [0, 0, 1, 0],
       [0, 1, 0, 0],
       [0, 0, 0, 1]])

保利集团

####P1 P1是第一个由 [-1,1,-1j,1j]和[Identity(),PauliX(),pauly(),PauliZ()]

>>> P1
P1
>>> p1 = list(P1())
>>> len(p1)
16
>>> equal(p1[0], -1*Identity())
True
>>> equal(p1[1], 1*Identity())
True
>>> equal(p1[2], -1j*Identity())
True
>>> equal(p1[3], 1j*Identity())
True
>>> equal(p1[15], 1j*PauliZ())
True

p1是一个组,因此适用于:

关联性:

>>> all([ any([equal(apply(a,b), c) for c in P1()]) for a in P1() for b in P1()])
True

身份:

>>> equal( Identity(), p1[1])
True
>>> all([ equal(apply(a, Identity()), a) for a in P1()])
True

反向元素:

>>> all([ any([equal(apply(a, b), Identity()) for b in P1()]) for a in P1() ])
True

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java生成随机浮点,包括两个边界   java三层体系结构风格是如何工作的?一些简单的例子   多线程可以使用线程。在Java中,在循环中使用sleep(),以便定期执行某些操作?   读取循环上的java HibernateMysql异常   java使用带有Apache Ivy的自定义存储库,未找到解析程序   filenotfoundexception在读取时出现问题。Java中的txt文件   嵌入式tomcat 8.0.21中的java Spring websocket   java为什么我需要创建一个类的引用,然后创建一个B类的对象   java Splashscreen动画在Mac OS中更新时闪烁   JavaSpring3。名为“zoneManagerDelegate”的x Bean必须是[com.ms.adsp.delegate.sapi.zoneManagerDelegate]类型,但实际上是[$Proxy20]类型   java SQLite:没有这样的专栏;不明错误   java将JTable定位到JFrame中JPanel中的(x,y)位置   java在导入组织方面面临挑战。知道。xchart*   xml读取Java中的SVG元素并跳过某些包含文本的元素   java Spring Redis问题:Redis缓存中的GetAllCacheNames不能与RedisCacheManager一起使用   java Vertex Hazelcast:集群问题   java如何编辑osgi托管服务实现使用的属性文件?   java Android活动并行启动?   java AWS Lambda用于将excel转储到数据库中