2014-04-21 8 views
-5

현재 부르는 행렬이 대칭 행렬 인 경우 true를 반환하는 자바 부울 isSymmetric() 함수를 작성해야합니다. 그렇지 않으면 false를 리턴합니다. 누구든지 여기 또는 시작 위치에서 코드를 도울 수 있습니까? 모든 답변을 주시면 감사하겠습니다.자바 부울 isSymmetric

+3

약간의 노력을 보여주세요. –

+0

이것은 숙제와 매우 흡사합니다. 최소한 해결책을 찾으면 도움을받을 것입니다. 다음은 대칭에 대한 정보입니다. http://en.wikipedia.org/wiki/Symmetric_matrix – Leon

답변

1

Google에이 항목을 추가해야합니다. 밖에는 많은 답변이있었습니다.

하지만 (a, b)가 (b, a)와 같은지 확인해야합니다.

public static boolean isSymetric(int[][] array){ 
    for(int a = 0; a < array.length; a++){ 
     for(int b = 0; b < array.length; b++){ 
      if(array[a][b]!=array[b][a]){ 
       return false; 
      } 
     } 
    } 
    return true; 
} 

이 방법에서는 가장 바깥 쪽 for 루프가 행을 통과하고 내부 for 루프가 열을 통과합니다.

매트릭스의 각 요소를 통과하면됩니다. 배열 [a] [b] == 배열 [b] [a]이면 다음 배열을 확인할 수 있습니다. 일치하지 않으면이 행렬은 대칭이 아닙니다.

+0

행렬이 비대칭 인 경우 인덱스가 범위를 벗어날 수있는 위험이 있습니다. – Leon

+0

@Leon 오, 정말 좋은 점이 있습니다. 나는 모든 행렬이 정사각형이라고 가정합니다. 정사각형 행렬이 아닌 대칭 행렬을 가질 수 있습니까? –

+0

정사각형 행렬 만 대칭이 될 수 있으므로 경계 비교를위한 간단한 if 문을 사용하여 행렬이 실제로 정사각형인지 확인합니다 – Leon