Without a Break

'ㄹ'자 모양 배열, 마방진 배열, 배열 회전, 행렬 곱셈 알고리즘 순서도 본문

Algorithm/컴퓨터알고리즘

'ㄹ'자 모양 배열, 마방진 배열, 배열 회전, 행렬 곱셈 알고리즘 순서도

와븨 2022. 11. 15. 22:47

'ㄹ'자 모양 배열

 

[순서도]

  • 행은 계속해서 증가하고, 열은 증가,감소가 반복된다.
  • 변수 D로 진행 방향을 나타낸다. 1이면 우측, -1이면 좌측이다.
  • 1~5행까지 증가되면서 외부 반복문이 진행된다. 각 행마다 열 C는 C1부터 C2까지 D씩 변하면서 진행된다. A(R,C)에 값을 저장하고, 값을 1 증가시킨다.
  • C1과 C2의 값을 교체시키고 열의 진행 방향을 반대로 바꾼다. 

 

 

마방진 배열

5행 5열의 2차원 배열 S(5,5)에 대한 마방진 알고리즘 순서도

마방진 규칙

  1. 1행 중간 열에 위치한 S(1,3)에 먼저 숫자 1을 할당한다.
  2. 현재 위치에서 45도 대각선 방향으로 한 칸씩 이동하면서 다음 숫자를 할당한다. 45도 대각선 방향으로 이동하기 위하여, 행 번호는 1씩 감소시키고, 열 번호는 1씩 증가시킨다. 만일 감소시킨 행 번호가 1행보다 작으면 마지막 행인 5행으로 재설정하며, 증가시킨 열 번호가 마지막 열인 5열보다 크면 1열로 재설정하여 다음 숫자를 할당한다.
  3. 배정하려는 위치에 이미 숫자가 배정되어 있으면, 현재 위치보다 행 번호만을 1 증가시켜 행을 재설정한 후 다음 숫자를 할당한다.

 

[순서도]

  • S(1,3)에 먼저 숫자 1을 할당한다.
  • R행 C열에 자연수 N을 할당하고 행은 1 감소, 열은 1 증가시킨다. 감소시킨 행이 0이면 5행으로 재설정하고, 증가시킨 열이 6이면 1열로 재설정한다.
  • 새로 설정한 위치의 값이 0이면 아직 할당되지 않은 원소이므로 NR, NC의 위치에 N을 할당한다.
  • 새로 설정한 위치의 값이 0이 아니면, 이미 할당된 원소이므로 행을 1 증가시켜 N을 할당한다.

 

 

배열 회전

배열 A(5,5)를 시계 방향으로 90도 회전시켜 B(5,5)를 생성하는 알고리즘 순서도

 

[순서도]

  • 행 R의 값이 1~5까지 반복되고, 열 c의 값이 1~5까지 반복된다.
  • 배열 B의 열 위치는 6-R. 6에서 행을 뺀 만큼이다.
  • B(C,N) = A(R,C). 즉, A(R,C) 배열이 B배열의 5열부터 매핑되는 것.

 

 

행렬 곱셈 계산하기

 

[순서도]

  • A의 1행부터 B의 1~3열까지 곱하고, A의 2행과 B의 1~3열을 곱한다.
  • S(R,C) = 0으로 초기화하고, 행렬 A(R,K)와 B(K,C)의 곱을 누적하는 S(R,C)를 A의 열 수 인 4만큼 반복한다.