比较分解时间得到素数
Posted
技术标签:
【中文标题】比较分解时间得到素数【英文标题】: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 并从实际电路中确认大小。
【参考方案1】:
您正在尝试考虑高度并行系统的模拟。这为您提供了作为模拟的所有缺点,并且没有使量子计算变得有趣的并行性的优点。
表现不佳应该不足为奇。
【讨论】:
你能解释一下吗?我不明白 @ammaribrahim 查看代码中qasm_simulator
的行吗?这表明您正在尝试模拟量子力学。模拟往往很慢。量子分解在真正的量子计算机上应该很快的原因是你正在利用量子叠加的并行性。但是您在没有这种并行性的计算机上模拟它,这使得它更慢。
谢谢我知道了,但是如果有什么方法可以在任何地方的量子计算机上运行它?
@ammaribrahim 您可以尝试ibm.com/quantum-computing/developers 并创建一个帐户。我不知道它要花多少钱,但你是在一台价值数千万美元的机器上租用时间。所以我预计它会花费一些东西。以上是关于比较分解时间得到素数的主要内容,如果未能解决你的问题,请参考以下文章