Algorithm 从迭代中分而治之
给定一个包含n个元素和函数fi的基于1的数组a,j 1≤ i、 j≤ n为i-j2+gi,j2。函数g由以下伪代码计算:Algorithm 从迭代中分而治之,algorithm,divide-and-conquer,Algorithm,Divide And Conquer,给定一个包含n个元素和函数fi的基于1的数组a,j 1≤ i、 j≤ n为i-j2+gi,j2。函数g由以下伪代码计算: int g(int i, int j) { int sum = 0; for (int k = min(i, j) + 1; k <= max(i, j); k = k + 1) sum = sum + a[k]; return sum; } 找到一个值mini≠ 菲菲,j 我已经为此创建了一个迭代蛮力算法,但解决方案需要用分治编
int g(int i, int j)
{
int sum = 0;
for (int k = min(i, j) + 1; k <= max(i, j); k = k + 1)
sum = sum + a[k];
return sum;
}
找到一个值mini≠ 菲菲,j
我已经为此创建了一个迭代蛮力算法,但解决方案需要用分治编码
蛮力算法:
def g_fun(i,j):
sum=0
for k in xrange(min(i,j)+1,max(i,j)+1):
sum+=arr[k-1]
return sum
def f_fun(i,j):
s=g_fun(i,j)
return ((i-j)**2 + s**2)
n=input("n : ")
arr=map(int,raw_input("Array : ").split())
low=100000 #infinity
for i in xrange(1,n+1):
for j in xrange(1,n+1):
if i!=j:
temp=f_fun(i,j)
if temp < low:
low=temp
print low
StackOverflow不是要求现成完整解决方案的地方。你必须努力学习和编码。只有当你在某个特定的部分陷入困境时,才可以问一个关于这个特定问题的问题。@Dialogicus:我明白,先生,我想出了一个迭代的解决方案。我唯一需要的是一些关于如何达成解决方案的指导