生成具有给定体积的所有立方体

时间:2014-12-04 19:47:32

标签: algorithm python-3.x brute-force cubes

我需要生成所有可能的(a, b, c),例如a * b * c = V,其中V是function parameter

有没有正确的方法来完成我的任务?我尝试使用a, b, c的完全蛮力,但它非常慢。这是因为V可能超过10^4

P.S。 a, b, c是整数。

1 个答案:

答案 0 :(得分:1)

我猜你正在做这样的事情:

def prisms(V):
    for a in range(1, V+1):
        for b in range(1, V+1):
            for c in range(1, V+1):
                if a*b*c = V:
                    print a,b,c

通过从已知的A和B值中导出C的值,可以将复杂度从O(N ^ 3)降低到O(N ^ 2)。

def prisms(V):
    for a in range(1, V+1):
        for b in range(1, V+1):
            if V % (a*b) == 0:
                c = V / (a*b)
                print a,b,c

这不是最有效的方法,但它很简单,对于大约10 ** 4的V值也可能足够好。