生成具有给定体积的所有多维数据集



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

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

附言 a, b, c是整数。

我猜你在做这样的事情:

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

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

最新更新