1 điểm bởi GN⁺ 2025-05-22 | 1 bình luận | Chia sẻ qua WhatsApp
  • Bài toán toán học bằng emoji nổi tiếng trên Internet có đặc điểm tạo ra nhiều đáp án khác nhau do các yếu tố đánh lừa
  • Cộng đồng toán học muốn tạo ra một bài toán thay thế thật sự khó cho dạng bài này
  • Bài viết này giải thích cách tìm bộ ba Pythagoraskỹ thuật liên quan (vẽ đường thẳng)
  • Bài toán emoji độ khó cao lấy đường cong elliptic và phân tích nghiệm hữu tỉ làm trọng tâm
  • Nhấn mạnh chiến lược tìm nghiệm bằng các công cụ toán học và Mathematica

Bối cảnh và sự xuất hiện của bài toán toán học bằng emoji

Trên Internet, các bài toán được biểu diễn bằng emoji (hoặc hình trái cây, v.v.) đã lan truyền rộng rãi. Những bài toán này, do có các yếu tố dễ gây nhầm lẫn (ví dụ: khác biệt rất nhỏ về số lượng chuối), thường tạo ra nhiều đáp án cho cùng một đề, từ đó gây tranh cãi và hiệu ứng lan truyền. Các nhà toán học và cộng đồng toán học thực tế đã chán ngán kiểu bài này, và vào năm 2017, trên r/math của reddit đã xuất hiện một thread với ý tưởng “hãy thử tạo một bài toán hình ảnh thật sự khó”. Bài toán được đưa ra ở đó, khác với các bài trước, vẫn còn tương đối dễ nếu chỉ xét việc tìm nghiệm nguyên, nhưng sau đó một người tên là Sridhar Ramesh đã biến đổi nhẹ để nó trở nên cực kỳ khó. Ngay cả nghiệm nhỏ nhất của phiên bản biến đổi này cũng có hơn 80 chữ số, và nó được đánh giá là cần đến kiến thức nâng cao liên quan tới đường cong elliptic.

Ví dụ khởi động: tìm bộ ba Pythagoras

Trước tiên, bài viết xét một bài toán dễ hơn là cách liệt kê bộ ba Pythagoras. Thay vì trực tiếp tìm nghiệm nguyên (phương trình Diophantine) thỏa mãn x² + y² = z², ta tiếp cận bằng cách tìm nghiệm hữu tỉ (nghiệm dạng phân số) của x₁² + y₁² = 1.

  • Khi đó, nếu đặt x₁ = x/z, y₁ = y/z, bài toán được chuyển thành việc tìm mọi điểm hữu tỉ nằm trên đường tròn đơn vị
  • Ta chọn một điểm xuất phát như (0,1) và tưởng tượng vẽ một đường thẳng có hệ số góc hữu tỉ
  • Giao điểm thứ hai của đường thẳng đó với đường tròn sẽ luôn là một điểm hữu tỉ
  • Điều này có thể kiểm chứng bằng công thức Viète, và bằng cách cố định hệ số góc, ta có thể đi tới mọi điểm hữu tỉ
  • Tóm lại, bộ ba Pythagoras có thể được đặc trưng bởi cấu trúc (x, y, z) = (2mn, n²–m², n²+m²) (đúng với các số nguyên dương m, n)
  • Ý chính là nguyên lý “vẽ một đường thẳng thì sẽ có điểm mới xuất hiện

Bài toán emoji gốc: biến đổi phương trình khó thành đường cong elliptic

Biểu thức cốt lõi của bài toán bắt đầu từ x/(y+z) + y/(x+z) + z/(x+y) = 4 và được biến đổi thành dạng x³+y³+z³ = 3(x²(y+z)+y²(x+z)+z²(x+y)) + 8xyz.

  • Đặt x₁ = x/z, y₁ = y/z rồi chia toàn bộ cho z³ để chuyển sang phân tích nghiệm hữu tỉ
  • Sau khi thay vào, ta thu được phương trình x₁³ + y₁³ + 1 = 3(x₁²(y₁+1)+y₁²(x₁+1)+x₁+y₁) + 8x₁y₁
  • Nếu trực quan hóa, đồ thị của phương trình này có tính đối xứng, và bằng cách xoay hệ trục và đổi biến thích hợp (x₂, y₂), ta có thể đưa nó về dạng đơn giản hơn
  • Cuối cùng, ta thu được phương trình sau ở dạng đường cong elliptic: 1 - 6x₂ - 11x₂² - 4x₂³ - y₂² + 12x₂y₂² = 0

Nguyên lý tạo điểm hữu tỉ trên đường cong elliptic

Bài viết giải thích quy trình chọn hai điểm hữu tỉ P, Q trên đường cong elliptic, rồi kẻ đường thẳng nối hai điểm đó và tìm giao điểm thứ ba R của đường thẳng với đường cong.

  • Cả ba điểm P, Q, R đều sẽ có tọa độ hữu tỉ
  • Dùng công thức Viète cùng với hệ số góc của đường thẳng và các phép biến đổi đại số, ta có thể tính giao điểm thứ ba bằng một công thức nhất quán
  • Nếu vẽ đường thẳng tại cùng một điểm (P=Q), nó sẽ trở thành tiếp tuyến, và nguyên lý tương tự vẫn áp dụng
  • Điều quan trọng là: “nối hai điểm hữu tỉ thì lại sinh ra một điểm hữu tỉ khác”

Giới hạn của việc “nhân” điểm hữu tỉ và phát hiện điểm bậc vô hạn

Trên đường cong elliptic, các điểm hữu tỉ hiển nhiên dễ tìm như ((0,1), (-1,0), (0,-1), v.v.) đều dẫn tới những kết quả vô nghĩa đối với nghiệm.

  • Chỉ với các điểm này, ta sẽ chỉ lặp lại các điểm xoắn (torsion points, điểm bậc hữu hạn), tức là không thể tạo thêm điểm hữu tỉ mới
  • Ta cần một điểm chưa biết thuộc bậc vô hạn, tức là có thể sinh ra vô số nghiệm
  • Nhờ tính toán bằng máy tính như Mathematica, người ta tìm được một điểm hữu tỉ mới, chẳng hạn có dạng (-2, 1/5) (gọi điểm này là A)
  • Dùng điểm này, rồi áp dụng tiếp tuyến hoặc đường thẳng với các điểm khác, ta có thể tiếp tục tạo ra ngày càng nhiều nghiệm hữu tỉ mới và phức tạp hơn

Điều kiện để có nghiệm dương thực sự và phép tính lặp

Nghiệm của bài toán chỉ có ý nghĩa khi mọi x, y, z đều là số dương. Trong quá trình biến đổi, nếu giả sử z > 0 thì cần x₁ > 0 và y₁ > 0, và với tọa độ đã đổi biến (x₂, y₂), phải thỏa x₂ > |y₂|.

  • Lấy miền thỏa điều kiện này (một phần cụ thể của đồ thị) làm “vùng mục tiêu”, rồi lặp lại mẹo đường thẳng để đi tới các nghiệm hữu tỉ trong vùng đó
  • Trong quá trình tính toán, hoành độ và tung độ của các điểm hữu tỉ thực tế được biểu diễn qua những biểu thức đại số phức tạp (hàm L, T và Y)
  • Theo cách này, thông qua việc tính hệ số góc của tiếp tuyến và đường thẳng rồi lặp lại nhiều lần, ta có thể đạt tới những nghiệm rất lớn, dài tới hàng chục chữ số

Kết luận

Bài toán toán học bằng emoji được cho trông có vẻ đơn giản, nhưng trên thực tế đòi hỏi phải khai thác tích cực tính chất của đường cong elliptic và nguyên lý tạo điểm hữu tỉ, và trong nhiều trường hợp giá trị của nghiệm còn tăng theo cấp số nhân.

  • Nguyên lý đơn giản mang tính cấu trúc “vẽ đường thẳng để có điểm mới” vẫn được áp dụng theo dạng biến đổi trong đường cong elliptic
  • Quá trình tìm nghiệm nguyên thực tế hoặc nghiệm dương là rất phức tạp, và việc tính toán đại số bằng máy tính là thiết yếu
  • Ở phần tiếp theo của bài viết, tác giả sẽ tiếp tục hoàn thiện quá trình này, đi sâu hơn vào nền tảng toán học và mô tả nghiệm chi tiết hơn

1 bình luận

 
GN⁺ 2025-05-22
Ý kiến Hacker News
  • Chia sẻ liên kết giới thiệu một câu trả lời Quora thực sự xuất sắc

    • Câu trả lời Quora đó do Alon Amit viết, và bài gốc cũng có trích dẫn phần nhắc đến của Alon Amit

    • Đây đúng là cảm giác về đỉnh cao thực sự của Quora

  • Chia sẻ kinh nghiệm trước đây khi dạy toán cho trẻ em, đã thay công thức hay biểu thức bằng những thuật ngữ dễ thương và gần gũi như động vật, mây, ngôi sao; ban đầu bọn trẻ thấy phiền, nhưng chính nhờ vậy lại có dịp hứng thú với các khái niệm trừu tượng, và về sau khi dạy các bạn khác cũng dùng cùng cách đó, đồng thời nhấn mạnh rằng x không nhất thiết phải là thứ gì đặc biệt, thông điệp là “thay vì x có thể dùng mặt trời hay tổng số mèo hoặc bất kỳ tên nào”

    • Nhắc đến những cái tên như tổng số mèo, cùng xu hướng tối giản đã ăn sâu trong văn hóa toán học nói chung: trong công thức, tên biến thường rất ngắn hoặc bị trừu tượng hóa, nên khi thực sự giải thích công thức sẽ dẫn đến khó khăn kiểu “ký hiệu đóng vai trò quan trọng ở đây rốt cuộc là gì vậy? Ai lại viết là φ thế này...”, nhấn mạnh trò đùa rằng các nhà toán học còn tệ hơn cả lập trình viên trong chuyện đặt tên biến, dù loài người đã có hàng nghìn năm để tận dụng ngôn ngữ và nhãn, mà vẫn dùng các ký hiệu được “mã hóa” vô ích như rho; ý kiến cho rằng ngay cả trong các chương trình được suy ra từ bài báo toán học thì tên biến cũng nên dùng những tên gọi truyền đạt ý nghĩa một cách trực quan
  • Chia sẻ trải nghiệm thử tải ảnh bài toán lên ChatGPT qua giao diện OpenAI; ban đầu dự đoán mô hình либо đã biết sẵn bài và đưa ra đáp án, либо sẽ tưởng tượng bừa, hoặc từ chối giải hẳn, nhưng thực tế lại quan sát thấy nó tự tin đoán như thể là đáp án đúng, rồi sau khi tự tính mới nhận ra là sai, sau đó lặp lại cùng một kiểu phỏng đoán; thậm chí còn không nhận ra cả tính đối xứng và hành xử như một tác tử phi cấu trúc, cuối cùng lại khẳng định chắc nịch rằng không có đáp án; kết quả này khá bất ngờ, và nếu sau này nó tiếp tục kém đến mức này với các câu đố khác thì sẽ phải cập nhật lại niềm tin của mình

    • Chia sẻ kết quả thử cùng câu hỏi với Gemini, và cũng đã dùng ChatGPT o3, mất 11,5 phút để suy nghĩ; kèm liên kết tới tác vụ liên quan

    • Chính vì hoàn toàn không có một đáp án “hợp lý” nào mà con người có thể hiểu được nên lại càng ấn tượng; hình như cũng có một phiên bản ChatGPT kết nối với Wolfram Alpha, nên tò mò không biết phía đó đã được thử chưa

  • Về lời nhắc đến Sridhar Ramesh, nhấn mạnh rằng đây là một nhân tài hiếm có, vừa giỏi tiến sĩ toán học vừa thành thạo các trò đùa dựa trên meme Internet (shitposting)

  • Rất thích loại câu đố này nên từng đặt cho nó cái tên “Dantzig Sniping” và giới thiệu với bạn bè; chia sẻ liên kết tới bài toán tự tạo và bối cảnh liên quan

    • Phản hồi rằng lúc đầu lại liên tưởng tới địa danh Gdańsk (Danzig), nên đã tự hỏi rốt cuộc cái gì bị “sniping”

    • Hỏi rằng người ta tìm ra những bài toán có tính chất như thế này bằng cách nào

  • Nêu thắc mắc pha chút hài hước rằng đã là năm 2025 rồi, sao tác giả vẫn không thực sự dùng emoji trái cây làm tên biến

    • Khi phân tích mã C phức tạp, có kinh nghiệm thử đổi tên biến sang emoji thì sẽ nhìn phát biết ngay biến nào được dùng ở đâu, giúp nắm cấu trúc mã dễ hơn; có chia sẻ ảnh ví dụ, nhưng đáng tiếc là các ngôn ngữ hiện đại như Rust, JS tuân theo chuẩn XID_Start/XID_Continue nên chặn việc dùng emoji làm định danh

    • Chia sẻ liên kết ví dụ mã C# trong đó Gemini dùng tên biến là emoji trái cây để giải bài toán theo cách brute force

    • Bổ sung một nhận xét thực tế rằng tuy năm nay là 2025, nhưng năm ngôn ngữ đó được tạo ra thì không phải 2025

  • Nếu thay 4 bằng một hằng số khác thì có thể xuất hiện nghiệm nhỏ nhất còn lớn hơn khủng khiếp rất nhiều; chia sẻ liên kết tới một ví dụ thú vị về phương trình Diophantine (phương trình nghiệm nguyên) liên quan

    • Nhấn mạnh rằng tính năng gọi ra theo thời gian thực những số khổng lồ kỳ quặc nhưng tuyệt vời như số có 120 triệu chữ số là cực kỳ ấn tượng
  • Chia sẻ ký ức rằng khi bài toán này mới xuất hiện, mọi người đã cùng cười lớn trong một seminar về lý thuyết số

  • Việc đào sâu vào lý thuyết số và các đồ thị kỳ lạ thì rất thú vị, nhưng lại thấy tò mò chính xác điểm gây bối rối hay điểm gài bẫy trong câu đố táo/chuối ban đầu là gì; không rõ có yếu tố nào dễ gây nhầm lẫn hoặc khơi ra tranh cãi hay không, hay vì nó quá dễ nên ai cũng lao vào để tỏ ra mình giỏi; bản thân đã ra đáp án là 10, 4, 2, nhưng lại tự hỏi có phải chính mình mới là người bị nhầm không

    • Giải thích rằng “mẹo” thực sự là bó cuối có 3 quả chuối trong khi các bó khác có 4 quả, và dừa cũng chỉ xuất hiện một quả ở đúng biểu thức cuối; thực sự có thể bị hiểu nhầm thành kiểu 1 + 10 + 3
  • Chia sẻ mẹo rằng srsltid, tham số truy vấn trong địa chỉ liên kết của một bài toán cụ thể, là giá trị không cần thiết