首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ProjectQ-受控gate对象的哪一部分是控制位得分

ProjectQ-受控gate对象的哪一部分是控制位得分
EN

Stack Overflow用户
提问于 2019-02-13 16:28:57
回答 1查看 73关注 0票数 0

我一直在尝试分解projectQ对象,我可以设法分解非受控门和锯齿门。但我注意到,受控版本的门的对象与该门的对象完全相同。

生成这些对象的代码:

代码语言:javascript
复制
  eng = MainEngine()
  q = eng.allocate_qubit()
  p = eng.allocate_qubit()
  c = eng.allocate_qubit()
  X | q
  CNOT | (p,q)

这是XGate对象

代码语言:javascript
复制
{'_control_qubits': [],
 '_engine': <__main__.MainEngine object at 0x7fc323e4d198>,
 '_qubits': ([<projectq.types._qubit.WeakQubitRef object at 0x7fc30b0a3ef0>],),
 'gate': <projectq.ops._gates.XGate object at 0x7fc316778048>,
 'tags': []}

这是CNOT门,与ControlledGate(XGate)相同

代码语言:javascript
复制
{'_control_qubits': [],
 '_engine': <__main__.MainEngine object at 0x7fc323e4d198>,
 '_qubits': ([<projectq.types._qubit.WeakQubitRef object at 0x7fc30b0b1080>],),
 'gate': <projectq.ops._gates.XGate object at 0x7fc316778048>,
 'tags': []}

两者都没有控制量子比特,而且似乎控制门失去了控制量子比特。

知道控制量子比特存储在哪里吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-26 16:24:43

控制量子比特仅在MainEngine之后的链的更下游的ControlEngine接收到命令后才被添加到命令中。有关实现的详细信息,请参阅“元指令的3.2.1实现”here

要实现像这样的测试引擎,可以用来检查是否确实在MainEngine之后添加了控制量子位,您可以执行以下操作:

代码语言:javascript
复制
test_eng = Testing(BasicEngine) # Or CommandPrinter
eng = projectq.MainEngine(engine_list=[test_eng])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54665595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档