7fed8277b4826afe51ef85e5448175736fbfefd85bedde179ca0a1a32b9c27

7fed8277b4826afe51ef85e5448373735e58135601319281c965aa190638f7


며칠 전 서울대 에타에 올라온 신기한 숫자 배열


1 ~ 32 까지 중복 없는 원형 숫자 배열에서 인접한 두 숫자를 더하면 항상 제곱수가 된다고 한다


여기서 제곱수란 4, 9, 16, 25, 49, ... 인 숫자로 자기 자신과 자기 자신을 곱해 얻을 수 있는 숫자이다. (2*2 = 4, 3*3 = 9, 4*4 = 16, ...)



보는 사람마다 감탄을 자아내게 만드는 이러한 신통방통한 숫자 배열을 도대체 어떻게 만들 수 있는걸까?


이 숫자 배열을 찾는 방법은 그래프 이론과 관련이 있다






viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8666aced9716293faf0d83d7dde7c2eac114a2fdd2fb14e5fbbcb2d1cab6c9eb3d1a1993e84cc53af7c86d9030774233ef



싱붕이의 빠른 이해의 위해 예시를 들어보자


위 그림처럼 그림판을 켜고 1 ~ 16 까지 숫자를 적는다 (위 그림은 일부만 그림)


그 후 1 ~ 16 까지 숫자들 중 두 개의 숫자를 선택하고 더하자. 예로 1과 3를 선택하고 둘을 더하면 제곱수 4가 나온다.


더했을 때 제곱수가 나온다면 두 숫자 사이에 선을 그어 이어주고 (중요)


2 + 3 = 5 같이 더했을 때 제곱수가 나오지 않는다면 아무것도 하지 말자


이 짓거리를 뽑을 수 있는 모든 두 숫자에 대해 해주자







악수 횟수 구하기 : 네이버 블로그


(악수 횟수 구글 검색, 출처: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=pascal_edu&logNo=162026349)


눈치빠른 싱붕이는 두 개의 숫자를 뽑는 방식이


초등학생 시절 치를 떨게했던 수학익힘책의 생각하는 방법 찾기 - 악수 횟수 문제와 같다는 걸 눈치챘을 것이다


모든 숫자쌍을 뽑아서 이 짓거리를 해준다면 어떤 그림이 나오냐면


viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8666aced9716293faf0d83d7dde7c2eac114a2fdd2fb14e596d0b6d7cdb9c0ee3e1c18fdd509e9430c6cfbd82e15ddce


14


위와 같은 오묘한 그림이 하나 툭 튀어나온다


거의 다왔다. 이제 싱붕이가 할 일은 한 숫자를 출발점으로 하여 연결된 선을 타고 삥 둘러서 모든 숫자 찍고 다시 출발점으로 오는 경로를 찾으면 된다!


경로를 찾았다면 경로를 따라 원형으로 숫자를 적어주면 싱붕이도 서울대 문제의 원리를 완벽히 이해한 셈이다!








해밀턴 경로 - 위키백과, 우리 모두의 백과사전


이러한 경로를 그래프 이론에선 해밀턴 경로(Hamiltonian path)라고 부른다


즉 해밀턴 경로는 고향에서 출발해 전국팔도 전부 찍고 다시 고향으로 돌아오는 경로이다


위 그림의 빨간선을 따라가다보면 모든 점을 찍고 다시 시작 위치로 돌아온다






viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8666aced9716293faf0d83d7dde7c2eac114a2fdd2fb14e596d0b6d7cdb9c0ee3e1c18fdd509e9430c6cfbd82e15ddce


다시 원래 그림으로 돌아오자


경로를 찾으려고 봤더니 그림에 문제가 있다. 모든 숫자를 찍고 출발점으로 다시 돌아오는 경로가 없다!


눈 씼고 찾아봐도 그런 경로가 없다!!!


[1, 3, 6, 10, 15] 같은 작은 경로는 있지만 모든 숫자를 찍는 경로가 없다....


즉 1 ~ 16 까지 숫자를 쓴 것 만으론 모든 점을 찍고 돌아오는 경로가 없다





29


실망한 싱붕이가 있을지도 모른다. 하지만 숫자는 신의 영역이고 인간이 어찌할 수 없는 법...


신의 영역을 관찰한 싱붕이. 관찰을 통해 다음과 같은 사실을 알아낸다


관찰 1: 1 ~ 16 에 대해서 모든 점을 찍고 돌아오는 경로가 없다



관찰을 더 열심히 한다면 16 뿐만 아니라 더 나아가 31 이하의 모든 숫자에 대해서도 그러한 경로가 없다는 사실을 알 수 있다


관찰 2: 1 ~ k, k = 1, 2, 3, ... 31 에 대해서 모든 점을 찍고 돌아오는 경로가 없다


즉 1 ~ 17 도 없고 1 ~ 27 도 없고 1 ~ 31 도 그러한 경로는 없다





5


낌새를 눈치 챈 싱붕이는 위 사실이 31에서 멈췄다는 점에 물음표를 던질 것이다


반대로 생각해보면 1 ~ 32 까지 그리면 뭔가가 나온다는 말 아닐까?


1 ~ 32 까지 1 ~ 16 그림을 그렸던 것과 같은 방식으로 그림을 그려보자



viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8666aced9716293faf0d83d7dde7c2eac114a2fdd2fb14e596d0b6d7cdb9c0ee3e1c18fd851b4e73a772d11c621a6592


6


32 까지 그렸더니 뭔가 둥근 그림이 나왔다


이제 할 일은 위 그림에서 한 숫자에서 시작해 선을 타며 모든 숫자 찍고 다시 출발 숫자로 돌아오는 경로를 찾는 일이다


놀랍게도 위 그림에서 그러한 경로가 존재한다!


그 경로는 맨 처음 서울대 짤에서 본 원형 숫자 배열이며 다시 써보면 아래 숫자 배열을 원형으로 쓴 것과 같다


[1, 8, 28, 21, 4, 32, 17, 19, 30, 6, 3, 13, 12, 24, 25, 11, 5, 31, 18, 7, 29, 20, 16, 9, 27, 22, 14, 2, 23, 26, 10, 15]


의심많은 싱붕이는 그림 상에서 위 숫자들을 따라가며 진짜 그런지 확인해보자


이상으로 숫자 배열을 만드는 원리를 알아보았다




누구











한편, 아직 싱붕이의 궁금증을 해결하기엔 부족하다


위 그림을 보아하니 설마 경로가 저거 하나 밖에 없을까? 저게 끝일까하는 궁금증이 든다


뭔가 요리조리 잘 따라가다보면 다른 경로가 있지 않을까?


이 궁금증을 풀어보자




viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8667a5ed974b7aa8bce71c87da7933914f2c613cbaa8073a2fe6bb3069dfe408b3dc3a6d8e4ebb5cf348b0cd4b079bcf51


1 ~ 32 까지 그린 건 좋았는데 다른 경로를 찾기에 뭔가 그림도 크고 사람이 하기에 어려워 보이고


무엇보다 싱붕이는 너무 바쁘다


언제까지나 저 경로만 찾을 수도 없는 노릇


사람 손으로 할 수가 없다는 문제가 생긴다







38


사람 손으로 못한다??


-> 사람은 못한다??


-> 사람 못해


-> 누가 대신 해줬으면


-> 누가?


-> 충실한 노예가


-> 충실한 노예?? 컴퓨터??


-> 컴퓨터에게 시키면 딱이겠네!


그렇다! 이제 충실한 노예 구원투수 컴퓨터가 등판한다!







viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8667a5ed974b7aa8bce71c87da7933914f2c613cbaa8073a428abf366ed0ed0db0da3b03e69162aab054c22d66efc374


1 ~ 32 에 대해 다른 경로를 찾으라고 컴퓨터에게 시켜보자






viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8667a5ed974b7aa8bce71c87da7933914f2c613cbaa8073a428abf366ed0ed0db0da3b03b03f69b905a0cbfcb7e6586a


???


싱붕이는 싱벙갤과 디씨는 잘하지만 컴퓨터와 인연이 없다는 치명적인 매력을 가지고 있었다...


참으로 슬픈 일이 아닐 수 없다


정녕 도대체 방법은 없는 것인가..?








viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8667a5ed974b7aa8bce71c87da7933914f2c613cbaa8073a2fe6bb3069dfe408b3dc3a6d8e45ef0fa14fee9247079bcf51


생각하자... 생각하자...


다른 방법... 다른 방법...










viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8667a5ed974b7aa8bce71c87da7933914f2c613cbaa8073a2fe6bb3069dfe408b3dc3a6d8e12ef56f31ae5c718079bcf51


아! "해줘"!


그래서 대신 "해줬다"













Building...







TTUG (뚝)


TTAG (딱)


TTUG (뚝)


TTAG (딱)




Ok.




Ok. It's <Done>!



viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8667a5ed974b7aa8bce71c87da7933914f2c613cbaa8073a428abf366ed0ed0db0da3b03e84e845bb7c8b5a4104ee4a3


짜 잔


스크롤 내리는 동안 순식간에 프로그램이 만들어졌다!


만들어서 돌려보면 놀랍게도 아래 경로가 하나 더 존재한다고 한다!


[1, 15, 10, 26, 23, 2, 14, 22, 27, 9, 16, 20, 29, 7, 18, 31, 5, 11, 25, 24, 12, 13, 3, 6, 30, 19, 17, 32, 4, 21, 28, 8]


이걸 원처럼 그리면


viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8667a5ed974b7aa8bce71c87da7933914f2c613cbaa8073a428abf366ed0ed0db0da3b03b236a2073a54a3bfcf3b5a29


8


위 처럼 나온다


의심 많은 싱붕이는 직접 확인해보자






31


이제 원리를 파악한 싱붕이들은 서울대 유희에 속수무책으로 당하지 않을 것이다




















(추가)


참고로 1 ~ 32 뿐만 아니라 1 ~ 33 도 되고 34도 되고 35도 되고 추측컨데 32 이상이면 다 되는 것 같다


1 ~ 33 의 경우를 그려보면


viewimage.php?id=3eb4de21e9d73ab360b8dab04785736f&no=24b0d769e1d32ca73deb84fa11d028312df59e65a1669310d97d6b8667a5ed974b7aa8bce71c87da7933914f2c613cbaa8073a428abf366ed0ed0db0da3b03e69662acb904c02266efc374


위 그림처럼 나오고 가능한 모든 경로는 다음 두 개 뿐이다


[1, 8, 28, 21, 4, 32, 17, 19, 30, 6, 3, 13, 12, 24, 25, 11, 5, 20, 29, 7, 18, 31, 33, 16, 9, 27, 22, 14, 2, 23, 26, 10, 15]

[1, 15, 10, 26, 23, 2, 14, 22, 27, 9, 16, 33, 31, 18, 7, 29, 20, 5, 11, 25, 24, 12, 13, 3, 6, 30, 19, 17, 32, 4, 21, 28, 8]


이와 비슷한 문제로 knight tour 등이 있다


일반적으로 해밀턴 경로를 찾는 문제는 세계 최대 난제이다


콤푸터에 조예가 깊은 싱붕이라면 아래가 이 글 쓰면서 적당히 만든 프로그램이니 참고해보자


https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=bdf689aea0d86e235ccd668037061584