我正在尝试使用 Qiskit 中的 HHL 算法求解线性方程组。我无法理解以下函数的用途。
state_fidelity()
Run Code Online (Sandbox Code Playgroud)
为了理解这一点,我遵循了他们的官方文档。但我还不清楚。
他们像下面的代码一样使用这个函数。
from qiskit.quantum_info state_fidelity, process_fidelity
backend_sim = BasicAer.get_backend('statevector_simulator')
result = execute(circ, backend_sim).result()
state = result.get_statevector(circ)
print(state)
state_fidelity(basis_state('0110', 4), state)
Run Code Online (Sandbox Code Playgroud)
该代码的最后一行生成此输出。
1.0
请帮助我理解这一点。
好.所以我最近注册了Crashplan,它使用448位Blowfish来加密你发送的数据,我对Blowfish的研究越多听起来就像64位块大小完全不足以满足它们的大小将备份.
我已经读过,特别是在某些模式(如CTR)中,它对于大数据流是完全不够的,并且可以在仅仅几千兆字节之后与随机数据区分开来?但是,我读过的其他内容似乎表明,如果正确实施,这不是问题.
这样的攻击不适用于Crashplan的实施吗?
此外,假设实现完美无缺,它甚至是温和的"Post Quantum"安全吗?
拥有Crashplan的公司的创始人回答了类似的问题:https://superuser.com/questions/587661/crashplan-truecrypt-overkill
但是,我真的希望他对他们的实现做出更好的回应,以及为什么我应该相信我发送给Crashplan的大量数据,如果Blowfish自己的创建者说他很惊讶任何人仍然使用它并说你肯定会使用它反而是Twofish.
欢迎任何其他人也欢迎.我想尽可能多的信息.我已经非常担心我可能会完全停止使用Crashplan.
第一个Q#代码示例提供一种方法“ Set”,其编写方式如下(链接):
operation Set (desired: Result, q1: Qubit) : ()
{
body
{
let current = M(q1);
if (desired != current)
{
X(q1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
该方法将量子位设置为所需值。为此,将测量qubit值,如果该值与预期值不同,则将“交换” qubit状态。
但是在量子物理学中,如果不破坏粒子就无法测量粒子。这是《量子计算和量子信息》一书的引文:
...测量会更改量子位的状态,使其从| 0>和| 1>的叠加变为与测量结果一致的特定状态。例如,如果| +>的测量结果为0,则qubit的测量后状态将为| 0>。
但是使用Q#可以测量一个量子比特并继续使用它。
为什么Q#语言允许我们实现实际上不可能的操作?
预先感谢您的回答。
P vs NP问题确实存在问题吗?难道我们不能说P问题是经典计算机可以解决的问题,因为它适合于它的架构,NP问题本质上是量子的,可以通过量子架构的计算机来解决吗?
algorithm computer-science cpu-architecture quantum-computing
我对量子位的理解是,它们的力量在于“可以同时拥有许多状态”。但是,如何利用这一点来获得与具体问题/输入/程序相关的任何内容以及有意义的输出呢?我的理解是,一旦进行测量,许多状态就会消失,所以我不明白为什么纠缠会有所帮助,因为一旦你知道一个纠缠对的状态,就不会从纠缠对中获得额外的信息。换句话说,量子计算机如何能够比那些扔骨头寻找答案的老预言家得出更有意义的结果。是的,骨骼的位置被随机放置在许多可能的位置之一,但这应该如何与计算程序真正有意义地相关。我了解计算机门如何在传统硅计算机中创建逻辑。但它们的行为并不是随机的。肘节和整个量子世界的随机行为如何产生有用的结果?这种能力似乎是基于多状态随机性,但为什么这种随机状态被认为以某种方式提供比随机输出更多的东西?请回答 google 正在构建的计算机类型 - 而不是 DWave“量子”计算机。
背景
我正在处理的项目的一部分要求我分析 Q# 源代码并在遇到某些语法元素时执行特定操作。例如,假设我想计算整个程序中使用了多少种不同的门类型。现在,这可以通过遍历程序的抽象语法树并根据当前语法节点执行操作来实现。
我试过的
我首先分析了qsharp-compiler存储库,但是,编译器的内部工作方式缺乏在线文档,浏览所有 C# 和 F# 源代码非常乏味。
当然,我可以为该语言编写自己的解析器,但这对于手头的任务来说可能是一种矫枉过正。有有一个方法可以从编译器的内部提取AST。
问题
有没有办法以编程方式使用 Q# 编译器(从 C# 或 F#)编译 Q# 源代码,并提取内部 AST?
'Microsoft.Quantum.Simulator.Runtime.dll'在尝试通过运行teleport示例程序验证我的Q#环境时,无法加载DLL 错误.
dotnet build
dotnet run
platform windows 7 64 bit with AVX enabled. vscode with .NET Core SDK 2.0
Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'Microsoft.Quantum.Simulator.Runtime.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
at Microsoft.Quantum.Simulation.Simulators.QuantumSimulator.Init()
at Microsoft.Quantum.Simulation.Simulators.QuantumSimulator..ctor(Boolean throwOnReleasingQubitsNotInZeroState, Nullable`1 randomNumberGeneratorSeed, Boolean disableBorrowing)
at Microsoft.Quantum.Examples.Teleportation.Program.Main(String[] args) in C:\opt\workspace\quantum\Quantum\Samples\Teleportation\Program.cs:line 13
Run Code Online (Sandbox Code Playgroud)