Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 从迭代中分而治之_Algorithm_Divide And Conquer - Fatal编程技术网

Algorithm 从迭代中分而治之

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 我已经为此创建了一个迭代蛮力算法,但解决方案需要用分治编

给定一个包含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

我已经为此创建了一个迭代蛮力算法,但解决方案需要用分治编码

蛮力算法:

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:我明白,先生,我想出了一个迭代的解决方案。我唯一需要的是一些关于如何达成解决方案的指导