2013-03-18 3 views
0

배열이 A[n] 인 것으로 가정합니다. pairwise 제품 표현의 제곱근을 최소화하고자합니다. sqrt(m1*m2), m1m2은 배열의 두 요소입니다.쌍별 곱을 제곱근을 최소화하는 알고리즘

예, A[3] = {72,35,50,30}에 대한 대답은

(125)은 알고리즘 또는 이에 대한 가능한 의사 코드를 제안하십시오 것 (낮은 정수로 반올림). 감사!

EDIT (더 명확하게하기 위해) : 나는이 질문에서 나는 약간 불분명했다. 먼저 두 개의 숫자를 곱한 다음 배열의 나머지 숫자로 대체합니다. 그런 다음이 제품을 나머지 번호와 함께 다시 실행하고 가능한 모든 방법의 최소 숫자가 하나만있을 때까지 계속하십시오.

+6

어떻게 그 답을 얻었 는가? – Sergio

+0

[수학 StackExchange 사이트] (http://math.stackexchange.com/)를 사용해보십시오. –

답변

0

배열에 짝수 개의 요소가 있고 모두 양수라고 가정합니다. 각 배열 요소가 한 번 사용되는 pairwise 제품을 의미한다고 가정합니다.

1 단계 : 정렬 배열 2 단계 : 쌍 일치 요소가 가장 큰 *이 같은 작고에있는 당신의 방식으로 작동이 :

double sum = 0; 
for (int i = 0; i < n/2; i++) 
{ 
    sum += sqrt(A[i] * A[n-(i+1)]); 
} 
관련 문제