Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬의 라틴 광장

<시간/>

라틴 스퀘어는 특별한 패턴을 가진 행렬입니다. 패턴을 살펴보기 위해 다양한 예를 살펴보겠습니다.

1 22 11 2 33 1 22 3 11 2 3 44 1 2 33 4 1 22 3 4 1

위의 예에서 알 수 있듯이 라틴 사각형은 크기가 다릅니다. 그러나 위의 행렬의 패턴을 주의 깊게 관찰하면 이전 행의 마지막 숫자가 다음 행의 첫 번째 요소로 오는 것을 알 수 있습니다.

라틴 광장에 숨겨진 패턴입니다. 입력 n에 대해 위의 행렬을 생성하는 프로그램을 작성해야 합니다.

알고리즘

  • n은 원하는 숫자로 초기화합니다.
  • n + 1 값으로 숫자를 초기화하고 이를 first_half_end라고 합니다.
  • 1에서 n까지 반복하는 루프를 작성하십시오.
    • first_half_end의 값을 first_half_start라는 변수에 할당합니다.
    • first_half_start가 값 n에 도달할 때까지 루프를 작성합니다.
      • 반복 변수, 즉 first_half_start를 인쇄합니다.
    • 1에서 first_half_end까지 반복하는 루프를 작성합니다.
      • 반복 변수를 인쇄합니다.
    • first_half_end의 값을 1만큼 감소시킵니다.
    • 다음 행으로 이동합니다.

구현

다음은 위의 알고리즘을 Python으로 구현한 것입니다.

def generateLatinSquare(n):first_half_end =n + 1 for i in range(1, n + 1):first_half_start =first_half_end 동안 (first_half_start <=n):print(first_half_start, end=" ") first_half_start +=1 for second_half_start in range(1, first_half_end):print(second_half_start, end=" ") first_half_end -=1 print() print()if __name__ =="__main__":generateLatinSquare(2) generateLatinSquare(3) generateLatinSquare(4) 

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

1 22 11 2 33 1 22 3 11 2 3 44 1 2 33 4 1 22 3 4 1