我需要生成所有可能的 (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/