用 150 行 Python 代码写的量子计算模拟器
简评:让你更轻松地明白,量子计算机如何遵循线性代数计算的。
这是个 GItHub 项目,可以简单了解一下。
qusim.py 是一个多量子位的量子计算机模拟器(玩具?),用 150 行的 python 所编写。
这段代码可以让你轻松了解量子计算机如何遵循线性代数来计算的!
from QuSim import QuantumRegister
Introduction
Here Will Be A Few Example of Different
Quantum States / Algorithms, So You Can
Get A Feel For How The Module Works, and
Some Algorithmic Ideas
Quantum Measurement
This experiment will prepare 2 states, of a
Single qubit, and of 5 qubits, and will just
Measure them
OneQubit = QuantumRegister(1) # New Quantum Register of 1 Qubit
print('One Qubit: ' + OneQubit.measure()) # Should Print 'One Qubit: 0'
FiveQubits = QuantumRegister(5) # New Quantum Register of 5 Qubits
Should Print 'Five Qubits: 00000'
print('Five Qubits: ' + FiveQubits.measure())
Swap 2 Qubits
Here, We Will Apply a Pauli-X Gate / NOT Gate
To the first qubit, and then after the algorithm,
it will be swapped to the second qubit.
Swap = QuantumRegister(2) # New Quantum Register of 2 qubits
Swap.applyGate('X', 1) # Apply The NOT Gate. If Measured Now, it should be 10
Start the swap algorithm
Swap.applyGate('CNOT', 1, 2)
Swap.applyGate('H', 1)
Swap.applyGate('H', 2)
Swap.applyGate('CNOT', 1, 2)
Swap.applyGate('H', 1)
Swap.applyGate('H', 2)
Swap.applyGate('CNOT', 1, 2)
End the swap algorithm
print('SWAP: |' + Swap.measure() + '>') # Measure the State, Should be 01
Fair Coin Flip
Shown in this 'Experiment', is a so called 'Fair Coin Flip',
Where a state will be prepared, that has an equal chance of
Flipping to Each Possible State. to do this, the Hadamard
Gate will be used.
New Quantum Register of 1 Qubit (As a coin has only 2 states)
FairCoinFlip = QuantumRegister(1)
If measured at this point, it should be |0>
Apply the hadamard gate, now theres an even chance of measuring 0 or 1
FairCoinFlip.applyGate('H', 1)
Now, the state will be measured, flipping the state to
either 0 or 1. If its 0, we will say "Heads", or if its
1, we will say "Tails"
FairCoinFlipAnswer = FairCoinFlip.measure() # Now its flipped, so we can test
if FairCoinFlipAnswer == '0':
print('FairCoinFlip: Heads')
elif FairCoinFlipAnswer == '1':
print('FairCoinFlip: Tails')
CNOT Gate
In this experiment, 4 states will be prepared, {00, 01, 10, 11}
And then the same CNOT Gate will be run on them,
To Show The Effects of the CNOT. The Target Qubit will be 2, and the control 1
New Quantum Register of 2 Qubits, done 4 times.
If any are measured at this time, the result will be 00
ZeroZero = QuantumRegister(2)
ZeroOne = QuantumRegister(2)
OneZero = QuantumRegister(2)
OneOne = QuantumRegister(2)
Now prepare Each Into The State Based On Their Name
ZeroZero Will be left, as thats the first state anyway
ZeroOne.applyGate('X', 2)
OneZero.applyGate('X', 1)
OneOne.applyGate('X', 1)
OneOne.applyGate('X', 2)
Now, a CNOT Will Be Applied To Each.
ZeroZero.applyGate('CNOT', 1, 2)
ZeroOne.applyGate('CNOT', 1, 2)
OneZero.applyGate('CNOT', 1, 2)
OneOne.applyGate('CNOT', 1, 2)
Print the results.
print('CNOT on 00: |' + ZeroZero.measure() + '>')
print('CNOT on 01: |' + ZeroOne.measure() + '>')
print('CNOT on 10: |' + OneZero.measure() + '>')
print('CNOT on 11: |' + OneOne.measure() + '>')
主要代码来自:corbett/QuantumComputing.
如果你对用 RUST 所写的高效、高性能的硬件量子计算模拟器有兴趣,可以点击 QCGPU 来查看更多内容。
GITHUB 地址:adamisntdead/QuSimPy
用 150 行 Python 代码写的量子计算模拟器的更多相关文章
- 150+行Python代码实现带界面的数独游戏
150行代码实现图形化数独游戏 Github地址,欢迎各位大佬们fork.star啥的,感谢: 今天闲着没事干,以前做过html+js版的数独,这次做个python版本的,界面由pygame完成,数独 ...
- python 之路,200行Python代码写了个打飞机游戏!
早就知道pygame模块,就是没怎么深入研究过,恰逢这周未没约到妹子,只能自己在家玩自己啦,一时兴起,花了几个小时写了个打飞机程序. 很有意思,跟大家分享下. 先看一下项目结构 "" ...
- 10 行 Python 代码写的模糊查询
导语: 模糊匹配可以算是现代编辑器(在选择要打开的文件时)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的文件名,并提供一个推荐列表供用户选择. 样例如下: Vim (Ctrl-P ...
- (转)python 之路,200行Python代码写了个打飞机游戏!
原文:https://www.cnblogs.com/alex3714/p/7966656.html
- 一个 11 行 Python 代码实现的神经网络
一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...
- 200行Python代码实现2048
200行Python代码实现2048 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面 ...
- 10 行 Python 代码实现模糊查询/智能提示
10 行 Python 代码实现模糊查询/智能提示 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的 ...
- 20行Python代码爬取王者荣耀全英雄皮肤
引言王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了.我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成. 准备工作 ...
- 200行PYTHON代码实现贪吃蛇
200行Python代码实现贪吃蛇 话不多说,最后会给出全部的代码,也可以从这里Fork,正文开始: 目前实现的功能列表: 贪吃蛇的控制,通过上下左右方向键: 触碰到边缘.墙壁.自身则游戏结束: 接触 ...
随机推荐
- hadoop 测试框架
hadoop 0.21以前的版本中(这里拿0.20为例,其他版本可能有少许不同),所有的测试相关代码都是放置在${HADOOP_HOME}/src/test下,在该目录下,是按照不同的目录来区分针对不 ...
- HBase Master启动过程
master启动过程: -->首先初始化HMaster -->创建一个rpcServer,其中并启动 -->启动一个Listener线程,功能是监听client的请求,将请求放入ni ...
- Odoo 学习 【二】Environment 概览
Environment 参考链接: http://odoo-new-api-guide-line.readthedocs.io/en/latest/environment.html#environme ...
- 对于程序员在boss直聘求职的建议
最近为一个岗位的招聘,在直聘伤刷了三百份简历 0.上传简历最好是PDF,word简历在不同的系统和软件下排版可能会出问题. 1.新职位投得要快,后面投的,有可能看不到. 为了投的命中率,投之前最好看一 ...
- Solr(三)向solr-5.5.4中添加数据
Solr添加数据 一 首先在创建好的CORE中添加自己需要的Field(可以理解为表的字段) 1 切换到配置Field的文件目录,编辑配置Field的文件 managed-schema cd /usr ...
- tensorflow1.0.0 弃用了几个operator写法
除法和取模运算符(/, //, %)现已匹配 Python(flooring)语义.这也适用于 tf.div 和 tf.mod.为了获取强制的基于整数截断的行为,你可以使用 tf.truncatedi ...
- hadoop中setup,cleanup,run和context讲解
hadoop 执行中的setup run cleanup context的作用1.简介1) setup(),此方法被MapReduce框架仅且执行一次,在执行Map任务前,进行相关变量或者资源的集中初 ...
- TensorFlow-谷歌深度学习库 文件I/O Wrapper
这篇文章主要介绍一下TensorFlow中相关的文件I/O操作,我们主要使tf.gfile来完成. Exists tf.gfile.Exists(filename) 用来判断一个路径是否存在,如果存在 ...
- js 遍历 each() 方法
1.例子: <html><head><script type="text/javascript" src="/jquery/jquery.j ...
- 接口调用(发送http请求)
// 向对应的url地址发送http请求, 并获取响应的json字符串 public String getHttpResponse(String url) { // result用 ...