16得票3回答
确定整数因子分解算法的复杂度

我开始学习计算复杂性、大O符号等知识,我被要求编写一个整数分解算法并确定它的复杂度。我已经编写了算法并且它可以工作,但是我在计算复杂度时遇到了困难。伪代码如下:DEF fact (INT n) BEGIN INT i FOR (i -> 2 TO i <= n /...

15得票3回答
整数分解为什么是非多项式时间?

我只是计算机科学的初学者。我了解了一些有关运行时间的知识,但我不能确定我理解的是否正确。所以请帮助我。 因此,整数因数分解目前不是一个多项式时间问题,但素性测试是一个多项式时间问题。假设要检查的数字是n。如果我们运行一个程序,仅判断从1到sqrt(n)的每个数字是否能够被n整除,并且如果答案...

7得票2回答
Pollard-Rho分解并行化

我最近偶然看到了有关一篇论文,介绍了Pollard's Rho算法的并行化,鉴于我的具体应用场景以及我尚未达到所需的数学水平,我想知道这种特定的并行化方法是否对我的情况有帮助。 我正在试图找到一个非常大的数字的两个因子——半素数。根据我所能理解的论文的内容,我的假设是这种并行化方法对于具有许...

23得票8回答
高效存储质数

为了一个库,我需要存储小于限制值L的所有质数。这个集合必须具有O(1)的查找时间(用于检查一个数字是否是质数),并且在给定一个数字时,必须很容易地找到下一个质数(假设它比L小)。 考虑到L是固定的,使用Eratostene筛选法生成列表就可以了。目前,我使用一个紧凑的布尔数组来存储列表,该数...

9得票5回答
使用GMP高效地分解大数

我需要获取所有大于1k位的数字的质因数。这些数字几乎是随机的,所以应该不难。我用C++和GMP库。如何高效地完成这个任务? 编辑:我想你们都误解了我的意思。我所说的质因数是指得到数字的所有质因数。很抱歉我的英语有问题,在我的语言中,prime和factor是一样的。 澄清(来自OP的其他帖...

73得票10回答
什么是最快的整数因式分解算法?

我写了一个程序,试图找出亲和数对。这需要找到数字的真因子之和。 这是我的当前sumOfDivisors()方法:int sumOfDivisors(int n) { int sum = 1; int bound = (int) sqrt(n); for(int i...

15得票6回答
我有一个包含某个数的质因数的Python列表。如何(用Python语言)找出所有的因子?

我正在解决一个Project Euler的问题,需要对整数进行因数分解。我可以列出给定数字的所有质因数。基本定理算术表明,我可以使用这个列表来得出这个数的每个因数。 我的当前计划是取出质数因子列表中的每个数字并将其指数提高,直到它不再是整数因子为止,以找到每个质数的最大指数。然后,我将乘以每...

12得票1回答
为什么这里没有发生尾调用优化?

我们正在使用递归查找因数,但是遇到了堆栈溢出异常。我们已经阅读到在x64计算机上的C#编译器执行尾调用优化: JIT在运行优化代码而非调试时确实会进行尾调用。 在我们的程序中运行dotnet --configuration release执行到这一步:... ...

9得票1回答
量子态分解

我正在寻找可以处理由位组成的加权经典状态求和形式的任意量子态的算法,例如下面这个形式: |0000>/2 - |0011>/2 + |0100>/2 - |0111>/2 并使用张量积将其转化为更紧凑的形式,如下所示: |0> x (|0> + |1...

65得票15回答
高效地获取给定数字的所有因数

根据这个帖子,我们可以通过以下代码获取一个数字的所有因数。for (int i = 1; i <= num; ++i){ if (num % i == 0) cout << i << endl; } 例如,数字24的因数是1 2 3 4 6...