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

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

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

是否有一些正确的方法来完成我的任务?我尝试使用 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

这不是最有效的方法,但它很简单并且可能足以满足 10**4 左右的 V 值。

关于algorithm - 生成具有给定体积的所有立方体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27302716/

相关文章:

algorithm - 如何应用动态规划来寻找在现场 build 塔的最低成本

algorithm - 如何去掉数学表达式中不必要的括号

algorithm - 从链表中删除总和为零的元素

python - 优化蛮力数字求解器python的建议

c++ - 将任意位置的 N 位从一个 int 复制到另一个 int 的算法

python - 类型错误 : unsupported operand type(s) for +: 'float' and 'str'

python - 我可以使用 python 中的 coerce() 函数添加两个元组以形成一个新元组吗?

html - 使用xpath(python3)的href属性为空

c - 扩展 C 蛮力算法

c - 我怎样才能在暴力攻击中最好地使用 "parallelise"一组四个嵌套的 for() 循环?