- 인터넷 과일·이모지 수식 퍼즐의 변형을 정수 디오판토스 방정식으로 보고, 양의 정수 해를 만들기까지의 과정을 추적함
- 핵심 도구는 정수 해를 곧장 찾는 대신 유리점을 먼저 찾고, 직선이나 접선으로 새 유리점을 생성하는 기하적 방법임
- 변수 치환과 회전을 거친 방정식은 대칭적인 타원곡선이 되지만, 처음 보이는 쉬운 점들은 원래 문제의 양의 해로 바로 이어지지 않음
- 타원곡선에서 두 유리점을 잇는 직선이나 한 점의 접선은 세 번째 교점을 만들고, Vieta 공식 덕분에 그 점도 유리점으로 남음
- Mathematica로 덜 자명한 점을 찾고 연산을 반복한 끝에, 원래 변수로 되돌렸을 때 가능한 거대한 양의 정수 해를 구성함
인터넷 이모지 퍼즐이 수학 문제로 바뀐 과정
- 인터넷에는 바나나 개수처럼 세부를 헷갈리게 해 서로 다른 답이 나오도록 만든 이모지 수식 퍼즐이 널리 퍼져 있었음
- 2017년 초 r/math에는 Facebook식 과일 수학 퍼즐에 질렸다는 취지의 reddit thread가 올라왔고, 한 사용자가 과일 그림을 쓴 더 어려운 문제를 만들었음
- Sridhar Ramesh가 그 문제를 약간 바꾸어 널리 퍼뜨리면서, 최소 해가 매우 길고 타원곡선 지식이 필요하다고 여겨지는 악명 높은 문제로 바뀜
- 목표는 그 변형된 이모지 문제를 실제로 푸는 과정임
준비 예제: 피타고라스 삼중수와 유리점
- 먼저 피타고라스 삼중수를 찾는 문제를 더 쉬운 예제로 다룸
- 정수 해를 직접 찾기보다, 대응되는 단위원 위의 유리점을 찾는 문제로 바꾸면 구조가 단순해짐
- 단위원 위의 한 유리점에서 출발해 유리수 기울기의 직선을 그으면, 원과 만나는 두 번째 점도 유리점이 됨
- 직선과 원의 교점을 구하면 이차방정식이 나옴
- 계수가 유리수이고 한 근이 이미 유리수이므로, Vieta 공식에 따라 다른 근도 유리수임
- 반대로 단위원 위의 다른 유리점은 출발점과 잇는 직선의 기울기가 유리수이므로, 모든 유리점을 같은 방식으로 얻을 수 있음
- 이 과정은 모든 피타고라스 삼중수를 양의 정수 두 개와 배수로 표현하는 표준 형태로 이어짐
- 중요한 패턴은 직선으로 새 점을 얻는 방법이며, 원래 이모지 문제에서도 비슷한 아이디어가 쓰임
원래 방정식을 타원곡선으로 바꾸기
- 이모지 문제의 방정식은 분모를 없앤 뒤, 정수 해 대신 변수 비율에 대한 유리점을 찾는 문제로 바뀜
- 양의 정수 해만 곧장 찾지 않고, 양수와 음수를 포함한 유리점 전체를 먼저 탐색함
- 그래프는 두 변수의 교환에 대해 변하지 않아 기울어진 대칭성을 가짐
- 편의를 위해 변수 치환으로 그래프를 회전해 축에 대해 대칭인 형태로 만들었고, 이 곡선을 타원곡선이라고 부름
- 그래프에서 눈으로 확인 가능한 쉬운 유리점들이 있지만, 원래 문제의 유효한 양의 해에는 대응하지 않음
- 그래서 쉬운 점들을 출발점으로 삼아 더 많은 유리점을 만들어야 함
타원곡선에서도 작동하는 직선 트릭
- 타원곡선 위의 두 유리점 (P), (Q)를 잇는 직선을 그으면, 그 직선은 곡선과 세 번째 점 (R)에서 만남
- 이 세 번째 교점도 유리점이 됨
- 직선 방정식을 타원곡선 방정식에 대입하면 한 변수에 대한 삼차방정식이 나옴
- 삼차방정식의 계수는 유리수임
- 이미 두 근은 (P), (Q)의 좌표에서 온 유리수이므로, Vieta 공식에 의해 세 번째 근도 유리수임
- 직선 방정식에 다시 대입하면 나머지 좌표도 유리수로 정해짐
- (P=Q)인 경우에는 두 점을 잇는 직선 대신 그 점에서의 접선을 쓰며, 교점은 중복도를 포함해 계산함
- 처음 찾은 쉬운 점들을 연결하거나 접선을 그려도 몇몇 점만 반복되고, 새롭고 유용한 점으로 확장되지 않음
- 이 점들은 torsion point라서 같은 직선 트릭을 반복해도 더 이상 새로운 점으로 탈출하지 못함
유효한 영역 안의 유리점 찾기
- Mathematica로 타원곡선 위의 덜 자명한 유리점을 탐색했고, 그중 하나가 이후 계산에 사용됨
- 목표는 임의의 유리점이 아니라, 원래 변수로 되돌렸을 때 세 값이 모두 양수가 되는 점을 찾는 것임
- 모든 변수가 음수이면 부호를 모두 뒤집어 양의 해를 얻을 수 있으므로, 한 변수를 양수라고 두고 조건을 역추적함
- 이 조건은 변환된 좌표평면의 특정 초록색 영역으로 나타나며, 타원곡선 위의 유리점을 그 영역 안으로 보내야 함
- 손계산으로는 매우 번거로워 Mathematica로 직선·접선 연산에서 나오는 교점 좌표 공식을 계산함
- 두 점을 잇는 직선의 세 번째 교점과 한 점에서의 접선이 만드는 세 번째 교점에 대해 좌표 공식이 만들어졌고, 식이 매우 복잡해지면서 숫자도 커짐
마지막 양의 정수 해 구성
- 출발 유리점에서 접선을 그어 새 점을 얻고, 다시 그 점에서 접선을 그어 다음 점을 얻는 과정을 반복함
- 몇 번의 접선 연산 뒤에도 목표 영역에 바로 들어가지 못해, 추가로 한 점의 좌표 부호를 바꾼 점과 연결해 또 다른 점을 만듦
- 마지막에는 미리 남겨둔 “좋은” 유리점 하나와 앞서 얻은 큰 좌표의 점을 연결해, 마침내 목표 초록색 영역 안의 유리점에 도달함
- 이 최종 유리점을 원래 변수들로 되돌리고, 분모의 최소공배수를 곱해 양의 정수 해를 구성함
- 마지막 검산에서 구성된 거대한 정수 해가 원래 이모지 문제의 방정식을 만족함을 확인함