小编Ind*_*jee的帖子

如何在Q#中实现Grover扩散算子?

如标题所述,如何在Q#中实现Grover扩散算子?我知道它的定义是任意数量的qubit的统一状态2 ?s|s? - I在哪里|s?。这可以进一步用夹在一对H门之间的Z0(称为U0)门来定义。我无法在量子图元和佳能文档中找到任何以可能的名称(例如Grover,diff等)开头的函数。

我不想使用该函数,AmpAmpByOracle因为它是非常高级的实现,并且不清楚我的理解。我想实现一个函数,它采用一个oracle Uf(我不知道是我想知道的)和它所需要的qubit数(N),并通过简单遵循Grover's Algorithm |中给出的电路来执行Grover算法。Wikipedia并通过在r = rox(2 ^(N / 2))迭代结束时测量所有N个量子位来测量所需状态。

quantum-computing q#

5
推荐指数
1
解决办法
257
查看次数

存储所有数据后,存储在std :: map/std :: set vs中对矢量进行排序

  • 语言:C++
  • 我可以做的一件事是分配一个大小为n的向量并存储所有数据,然后使用sort(begin(),end())对其进行排序.另外,我可以继续将数据放在一个地图中或设置自己订购的数据,这样我就不用事了.但在这种情况下,由于重新排列(我猜),插入元素可能会更昂贵.

    因此,对于大范围的n(对象的数量)来说,这是最短时间的最佳选择

c++ stdmap stdvector stdset data-structures

3
推荐指数
1
解决办法
158
查看次数