【问题标题】:compare between the factorization time get prime比较分解时间得到素数
【发布时间】:2021-03-30 11:16:01
【问题描述】:

我尝试比较以下之间的分解时间:1)经典算法函数:

def is_prime1(n):

    if n<2:
        return False
    for i in range(2,n):
        if n % i ==0:
            return False
    return True



def output_prime_factors(num):

    num=round(num)
    p=0
    while p < num:
        p +=1
        if num % p==0 and is_prime1(p)==True:
            print (p)

Qiskit (IBM) 上的 Shor 算法,但输出是 Unexpected thatquantum is slow how this occur )

N = 15

shor = Shor(N)

backend = BasicAer.get_backend('qasm_simulator')

quantum_instance = QuantumInstance(backend, shots=1024)

result = shor.run(quantum_instance)

print(f"The list of factors of {N} as computed by the Shor's algorithm is 
{result['factors'][0]}.")

qiskit 比经典函数慢

【问题讨论】:

  • 正常!您需要将大 N 的结果与大素因数进行比较!
  • 此 IBM 实施仅限于少数人:
  • 注意:这个 Shor 算法的实现使用 4n+2 个量子比特,其中 n 是表示二进制整数的比特数。所以在实践中,目前,这种实现仅限于分解小整数。给定上面的 N 值,我们计算下面的 4n+2 并从实际电路中确认大小。

标签: algorithm factorization qiskit


【解决方案1】:

您正在尝试考虑高度并行系统的模拟。这为您提供了作为模拟的所有缺点,并且没有使量子计算变得有趣的并行性的优点。

表现不佳应该不足为奇。

【讨论】:

  • 你能解释一下吗?我不明白
  • @ammaribrahim 查看代码中qasm_simulator 的行吗?这表明您正在尝试模拟量子力学。模拟往往很慢。量子分解在真正的量子计算机上应该很快的原因是你正在利用量子叠加的并行性。但是您在没有这种并行性的计算机上模拟它,这使得它更慢。
  • 谢谢我知道了,但是如果有什么方法可以在任何地方的量子计算机上运行它?
  • @ammaribrahim 您可以尝试ibm.com/quantum-computing/developers 并创建一个帐户。我不知道它要花多少钱,但你是在一台价值数千万美元的机器上租用时间。所以我预计它会花费一些东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 2017-04-23
  • 2012-07-22
  • 2011-02-11
  • 2012-06-09
  • 1970-01-01
相关资源
最近更新 更多