问题标签 [quantum-computing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
72 浏览

quantum-computing - 在 Q# 中循环遍历数组

如何循环遍历数组的元素并在 Q# 语言中通过索引访问它们,因为 C++ 中的常规循环在这里不起作用。

0 投票
1 回答
70 浏览

quantum-computing - S 门对 3 个量子位的组合(可能是纠缠)状态的一个量子位的影响

假设我有一个 3 个量子位的寄存器(qs)(前 2 个仅用于控制,最后一个是输入)。前两个控制量子位处于|+>状态,第三个输入的状态未知。顺其自然a|0> + b|1>

现在我应用 CCNOT(qs[0],qs[1],qs[2]) 使它们的组合状态变为0.5(a,b,a,b,a,b,b,a)转置矩阵形式 [请纠正,如果我在这里错了]。现在我将 S-gate 应用于转换的第三个量子位|1> -> i|1>

我现在无法猜测“qs”组合状态的状态。

我的想法:

  1. 一种逻辑是将每个状态乘以“i”,如果它具有以下形式|XY1>,则组合状态变为0.5(a,ib,a,ib,a,ib,b,ia) [Transposed]
  2. 另一个逻辑是找到的张量积,(I x I x S)因为我没有改变前 2 个量子位。执行此操作会产生不同的结果,即0.5(a,b,a,b,ia,ib,ib,ia) [Transposed][再次,如果我错了,请纠正我]。

通过 S 门(如果有)后哪个是正确的输出?

0 投票
1 回答
142 浏览

quantum-computing - 量子 V 门 1/sqrt(5) ( I + 2iZ)

根据定义,门 1/sqrt(5) (I + 2iZ) 应该作用于量子位a|0> + b|1>以将其转换为,1/sqrt(5) ((1+2i)a|0> + (1-2i)b|1>)但每个 RUS 步骤的转换执行以下操作 - 辅助首先处于 |+> 状态

  1. 起始形式: 1/sqrt(2) (a,b,a,b,a,b,a,b)
  2. CCNOT(辅助,输入):1/sqrt(2) (a,b,a,b,a,b,b,a)
  3. S(输入):1/sqrt(2) (a,ib,a,ib,a,ib,b,ia)
  4. CCNOT(辅助,输入):1/sqrt(2) (a,ib,a,ib,a,ib,ia,b)
  5. Z(输入):1/sqrt(2) (a,-ib,a,-ib,a,-ib,ia,-b)

现在,在 PauliX 基础上测量 ancillas 等效于将 H() 应用于状态后的 PauliZ 测量。现在我有两个困惑,我应该申请H x H x I 还是H x H x H合并状态。同样,当两个测量值都为零时,这些转换都不等同于第一段中定义的 V 门。我哪里做错了?

参考:https ://github.com/microsoft/Quantum/blob/master/samples/diagnostics/unit-testing/RepeatUntilSuccessCircuits.qs (第一个示例代码)

0 投票
1 回答
476 浏览

quantum-computing - Q#中如何实现格罗弗的扩散算子?

0 投票
1 回答
42 浏览

quantum-computing - 如何通过 Q# 中的 Oracle 对象传递量子位寄存器

假设我使用 ReflectionStart() 函数创建了一个 ReflectionOracle 对象,该函数反映了 |00...00> 轴。但是我如何通过这个预言机传递我的量子比特寄存器?由于这个 Oracle 是一个对象,我不能将它用作函数。是否有类似于 UseOracle(reflectionoracle,register) 的标准库工具?

0 投票
1 回答
101 浏览

c# - Q# AggregateException 找不到

从https://docs.microsoft.com/en-us/quantum/quantum-simulatorsandmachines?view=qsharp-preview试用此代码后

我收到以下错误:

我该如何解决?

0 投票
2 回答
586 浏览

visual-studio-2015 - 在 Q# Quantum Dev kit 中出现错误“已发布的 qubits 未处于零状态”

当运行以下简单的量子程序以将 Hadamard 门应用于单个量子位时:

我收到以下错误:

Microsoft.Quantum.Simulation.Simulators.Exceptions.ReleasedQubitsAreNotInZeroState:“释放的量子位不处于零状态。”

我正在使用Microsoft 的教程,其中没有提及使此类程序正常工作所需的任何其他内容。

我很感激 Q# 仍处于发布模式,但如果有人为此找到解决方案,那就太好了。

0 投票
1 回答
70 浏览

quantum-computing - Microsoft Q# 输出到 WPF 或 Windows 窗体

可以将 Q# 类与 Windows 窗体或 WPF 接口吗?Microsoft 在其 Quantum 开发工具包中提供的示例似乎仅与控制台交互。

0 投票
1 回答
65 浏览

.net - 尝试使用 Q# 设置元组时出现错误“设置语句必须具有变量或数组元素目标”

我正在使用 Q# 和量子开发套件

我已经声明了这个方法

我尝试使用mutable变量,然后set保存调用此方法的结果,如下所示:

但这样做我得到这个编译时错误:

一个 set 语句必须有一个变量或数组元素目标

如果我改用let它,它工作正常

谁能告诉我为什么我不能以这种方式使用mutable+set来保存(Result,Result)我的方法的元组类型结果?

提前谢谢了。

0 投票
1 回答
390 浏览

quantum-computing - Q#如何在不破坏量子位状态的情况下读取它?

第一个 Q# 代码示例提供了一个方法“Set”,其编写如下(链接)

此方法将量子位设置为所需值。为此,测量量子比特值,如果该值与预期不同,则“交换”量子比特状态。

但是在量子物理学中,你不能在不破坏粒子的情况下测量它。这是《量子计算与量子信息》一书的引述:

...测量改变了量子比特的状态,将其从 |0> 和 |1> 的叠加折叠到与测量结果一致的特定状态。例如,如果 |+> 的测量结果为 0,那么量子比特的测量后状态将为 |0>。

但是使用 Q#,您可以测量一个量子比特并继续使用它。

为什么 Q# 语言可以让我们实现现实中不可能的操作?

预先感谢您的回答。