2013-01-21 3 views
0

어떤 종류의 루프도 사용하지 않고 행렬을 조 변경하는 방법. nxn이라면 대각선을 기본 요소와 시프트 요소로 만들 수 있습니다. 그러나 nxm 행렬에 대해서는이 솔루션이 실현 가능하지 않다고 생각합니다.루프를 사용하지 않고 행렬 전치 ..?

어쨌든 우리는 루프를 올바르게 읽거나 저장해야합니다 ... ??

루프가없는 해결책 .. ??

+1

어떤 언어입니까? 아니면 언어에 구속력이 있습니까? 매트릭스 스토리지를 행 또는 열 메이저로 매개 변수화 할 수 있습니다.이 경우 행렬을 바꾸기 만하면 하나에서 다른 것으로 전환하고 차원을 바꿀 수 있습니다. – paddy

+0

왜? ('catch CommentTooShortException') – Doorknob

답변

0

처음에 행렬의 크기를 알고 있다면 루프가 필요하지 않습니다. 행렬을 전체적으로 조 변경하려면 행렬 위치를 바꿀 수 있기 때문입니다. 이 첫 번째 조건에서는 치수가 m x n 인 경우에도 루프가 필요하지 않습니다.

처음에 행렬의 크기를 모르는 경우 행렬을 반복하여 일부 위치를 읽고 행렬을 전치하는 과정에서 다른 위치로 바꿔야합니다.

0

전체 전치 행렬을 저장하려면 반드시 루프를 사용해야합니다. 행렬을 저장하기 위해 행렬의 멤버를 반복해야하므로 행렬을 저장하면 어쨌든 루프를 사용하므로 실제로 큰 문제는 아닙니다.

방금 ​​읽는 경우 매트릭스 전치 정의를 사용하고 인디 케이드를 번역하면됩니다. C에서 예를 들어 :

int getTransposedElement(int i,int j, int** originalMatrix) { 
    return originalMatrix[j,i]; 
} 

당신이 클래스와 다형성과의 언어를 사용하는 경우, 당신은이 작업을 자동으로 수행 새로운 매트릭스 클래스를 만들 수 있습니다. 이것은 원래의 행렬을 복사하는 것을 피할 수있는 또 다른 이점이 있습니다. 메모리를 절약하고 행렬 된 행렬의 변경 사항을 원래의 행렬에 반영 할 수 있습니다.

관련 문제