2013-07-23 4 views
-2

어디에서 시작해야할지 모르겠다. 내가 알아야 할 지식이 빠졌습니까? 네가 나에게 줄 수있는 힌트 나 내가 해부 할 수있는 해법이 있니?숫자 배열이 자바 스크립트의 기하학적 시퀀스인지 찾는 방법

+0

먼저 기하 시퀀스 (Geometric Progression을 확인하고자 할 수 있음)를 정의하십시오. 그것이 무엇인지 모를 경우, 시작하기 좋은 곳이 될 것입니다. 그 후에는 독자적으로 무언가를 구현하십시오. 붙어 있다면 돌아와. – travis

+1

첫 번째 두 요소의 비율을 가져옵니다. 그런 다음 배열을 반복하면서 각 연속 쌍의 비율이 같은지 확인합니다. – Barmar

답변

1

기하학적 시퀀스 아칸소 1 아칸소 0 AR 이다 2 ... 예?

function isGeometric(arr) { 
    if (arr.length <= 2) return true; // special cases 
    var a = arr[1],     // we dont need to test before this 
     r = a/arr[0],    // ratio of first 2 
     i; 
    for (i = 2; i < arr.length; ++i) 
     if ((a *= r) !== arr[i]) 
      return false; 
    return true; 
} 

isGeometric([2, 4, 8]); // true 
isGeometric([2, 4, 5]); // false 
+0

위의 특수한 경우를 왜 포함 시켰는지 궁금하다면, _undefined_에 의한 가능한 분할을 피하십시오. 'arr [0] === 0' 또는'arr [1] === 0'이라면'false'를주고 싶을 수도 있습니다. '[0, 0, 0, 0, 0, ...] ' –

+0

시퀀스가 ​​죽어가는 경우에는 작동하지 않습니다. 또는 정수 나누기가 다른 방식으로 당신을 망쳐 놓는 경우. arr [i] * arr [i] = arr [i + 1] * arr [i-1] – Teepeemm

+0

@Teepeemm 제로 오류에 의한 나누기를 이해할 수 있으므로 제 의견을 말씀해주십시오. 감소 시퀀스 –