1 poin oleh GN⁺ 2025-05-22 | 1 komentar | Bagikan ke WhatsApp
  • Mengulas variasi puzzle persamaan buah/emoji di internet sebagai persamaan Diophantine bilangan bulat, lalu menelusuri proses hingga menghasilkan solusi bilangan bulat positif
  • Alat utamanya adalah metode geometri yang, alih-alih langsung mencari solusi bilangan bulat, lebih dulu mencari titik rasional lalu membangkitkan titik rasional baru dengan garis lurus atau garis singgung
  • Persamaan setelah substitusi variabel dan rotasi menjadi kurva eliptik yang simetris, tetapi titik-titik mudah yang tampak pada awalnya tidak langsung mengarah ke solusi positif dari masalah asal
  • Pada kurva eliptik, garis yang menghubungkan dua titik rasional atau garis singgung di satu titik menghasilkan titik potong ketiga, dan berkat rumus Vieta titik itu juga tetap menjadi titik rasional
  • Setelah menemukan titik yang kurang sepele dengan Mathematica dan mengulangi operasinya, dibangun solusi bilangan bulat positif yang sangat besar saat dikembalikan ke variabel asal

Bagaimana puzzle emoji internet berubah menjadi masalah matematika

  • Di internet, puzzle persamaan emoji yang sengaja membingungkan detail seperti jumlah pisang sehingga memunculkan jawaban berbeda sudah tersebar luas
  • Pada awal 2017, di r/math muncul reddit thread yang intinya menyatakan kejenuhan pada puzzle matematika buah ala Facebook, lalu seorang pengguna membuat masalah yang lebih sulit dengan gambar buah
  • Ketika Sridhar Ramesh sedikit mengubah masalah itu dan menyebarkannya luas, masalah tersebut berubah menjadi puzzle terkenal yang diyakini memiliki solusi minimum sangat panjang dan membutuhkan pengetahuan tentang kurva eliptik
  • Tujuannya adalah benar-benar memecahkan variasi masalah emoji tersebut

Contoh persiapan: tripel Pythagoras dan titik rasional

  • Mula-mula dibahas masalah mencari tripel Pythagoras sebagai contoh yang lebih mudah
  • Alih-alih langsung mencari solusi bilangan bulat, strukturnya menjadi lebih sederhana jika diubah menjadi masalah mencari titik rasional pada lingkaran satuan yang bersesuaian
  • Jika memulai dari satu titik rasional pada lingkaran satuan lalu menggambar garis dengan kemiringan rasional, titik kedua tempat garis itu bertemu lingkaran juga menjadi titik rasional
    • Saat mencari titik potong garis dan lingkaran, muncul persamaan kuadrat
    • Karena koefisiennya rasional dan satu akarnya sudah rasional, menurut rumus Vieta akar lainnya juga rasional
  • Sebaliknya, titik rasional lain pada lingkaran satuan pun memiliki kemiringan rasional untuk garis yang menghubungkannya ke titik awal, sehingga semua titik rasional dapat diperoleh dengan cara yang sama
  • Proses ini menghasilkan bentuk standar yang menyatakan semua tripel Pythagoras dengan dua bilangan bulat positif dan kelipatannya
  • Pola pentingnya adalah cara memperoleh titik baru dengan garis lurus, dan ide serupa dipakai pada masalah emoji asal

Mengubah persamaan asal menjadi kurva eliptik

  • Persamaan pada masalah emoji, setelah menghilangkan penyebut, berubah menjadi masalah mencari titik rasional untuk rasio variabel alih-alih solusi bilangan bulat langsung
  • Alih-alih langsung mencari hanya solusi bilangan bulat positif, mula-mula dijelajahi semua titik rasional termasuk yang bernilai positif maupun negatif
  • Grafiknya tidak berubah ketika dua variabel dipertukarkan, sehingga memiliki simetri miring
  • Demi kemudahan, grafik diputar dengan substitusi variabel agar menjadi bentuk yang simetris terhadap sumbu, dan kurva ini disebut kurva eliptik
  • Ada beberapa titik rasional mudah yang bisa dilihat pada grafik, tetapi tidak berkorespondensi dengan solusi positif yang valid untuk masalah asal
  • Karena itu, titik-titik mudah tersebut harus dijadikan titik awal untuk menghasilkan lebih banyak titik rasional

Trik garis lurus yang juga bekerja pada kurva eliptik

  • Jika digambar garis yang menghubungkan dua titik rasional (P), (Q) pada kurva eliptik, garis itu akan bertemu kurva lagi di titik ketiga (R)
  • Titik potong ketiga ini juga merupakan titik rasional
    • Jika persamaan garis disubstitusikan ke persamaan kurva eliptik, akan muncul persamaan kubik dalam satu variabel
    • Koefisien persamaan kubik itu berupa bilangan rasional
    • Karena dua akar sudah merupakan bilangan rasional yang berasal dari koordinat (P), (Q), maka menurut rumus Vieta akar ketiga juga rasional
    • Jika disubstitusikan kembali ke persamaan garis, koordinat lainnya pun ditentukan sebagai bilangan rasional
  • Untuk kasus (P=Q), alih-alih garis yang menghubungkan dua titik digunakan garis singgung di titik itu, dan titik potong dihitung dengan memperhitungkan multiplisitas
  • Bahkan jika titik-titik mudah yang mula-mula ditemukan dihubungkan atau diberi garis singgung, hasilnya hanya mengulang beberapa titik dan tidak berkembang menjadi titik baru yang berguna
  • Titik-titik ini adalah torsion point, sehingga mengulangi trik garis yang sama tidak lagi bisa keluar ke titik baru

Mencari titik rasional di dalam wilayah yang valid

  • Dengan Mathematica, dicari titik rasional yang kurang sepele pada kurva eliptik, dan salah satunya kemudian dipakai untuk perhitungan berikutnya
  • Tujuannya bukan sembarang titik rasional, melainkan titik yang ketika dikembalikan ke variabel asal membuat ketiga nilainya semuanya positif
  • Jika semua variabel bernilai negatif, tandanya bisa dibalik semuanya untuk memperoleh solusi positif, sehingga satu variabel diasumsikan positif lalu syaratnya dilacak balik
  • Syarat ini direpresentasikan sebagai wilayah hijau tertentu pada bidang koordinat hasil transformasi, dan titik rasional pada kurva eliptik harus dipindahkan ke dalam wilayah tersebut
  • Perhitungan tangan sangat merepotkan, sehingga Mathematica dipakai untuk menghitung rumus koordinat titik potong yang muncul dari operasi garis lurus dan garis singgung
  • Dibentuk rumus koordinat untuk titik potong ketiga dari garis yang menghubungkan dua titik dan untuk titik potong ketiga dari garis singgung di satu titik, lalu ekspresinya menjadi sangat rumit dan angkanya membesar

Menyusun solusi bilangan bulat positif terakhir

  • Dari titik rasional awal, digambar garis singgung untuk memperoleh titik baru, lalu dari titik itu digambar lagi garis singgung untuk memperoleh titik berikutnya, dan proses ini diulang
  • Bahkan setelah beberapa operasi garis singgung, titik tersebut belum langsung masuk ke wilayah target, sehingga kemudian dibuat titik lain dengan menghubungkannya ke titik yang koordinatnya dibalik tandanya
  • Pada tahap akhir, satu titik rasional “baik” yang sudah disimpan sebelumnya dihubungkan dengan titik berkoordinat besar yang diperoleh tadi, dan akhirnya tercapai titik rasional di dalam wilayah hijau target
  • Titik rasional terakhir ini dikembalikan ke variabel asal, lalu dikalikan dengan KPK penyebut untuk membentuk solusi bilangan bulat positif
  • Pada verifikasi terakhir, dipastikan bahwa solusi bilangan bulat raksasa yang dibangun memang memenuhi persamaan pada masalah emoji asal

1 komentar

 
GN⁺ 2025-05-22
Opini Hacker News
  • Ada jawaban Quora yang bagus tentang masalah ini: https://www.quora.com/How-do-you-find-the-positive-integer-s...
    • Tulisan Quora itu ditulis oleh Alon Amit, dan sebagai catatan, teks aslinya juga mengutip Alon Amit, jadi pemikirannya lebih mirip penjelasan setelah kejadian
  • Terkait hal ini, saat mengajari matematika kepada anak-anak kecil dan membantu PR mereka, saya sering menuliskannya ulang sebagai persamaan, atau ketika sudah sampai tahap itu, mengganti bentuk persamaannya sendiri
    Namun alih-alih memakai sesuatu seperti x, saya memakai nama seperti awan empuk, bintang, dan sebagainya; anak-anak memang kesal, tetapi tetap tertarik, dan belakangan katanya mereka melakukan hal yang sama saat membantu teman-temannya
    Mudah sekali melupakan bagaimana rasanya saat pertama kali mempelajari abstraksi seperti ini; penting untuk menunjukkan bahwa x bukan sesuatu yang istimewa, bisa saja matahari, atau frasa seperti “jumlah total kucing”
    • Dalam budaya matematika ada minimalisme, jadi sampai batas tertentu saya paham bahwa saat melempar dan mengutak-atik persamaan, membantu jika semuanya dibuat sesingkat mungkin
      Namun ketika kemudian dipublikasikan, keterbacaannya benar-benar menjadi buruk. Situasinya jadi seperti, “ada komponen yang berperan besar dalam persamaan ini, tapi sebenarnya maksudnya apa? Entahlah, seseorang menamainya φ
      Saya sering bercanda bahwa kalau Anda pikir programmer buruk dalam memberi nama, lihatlah para matematikawan. Matematikawan punya semacam kebanggaan aneh atas kemampuan mereka yang buruk dalam memberi nama
      Yang paling parah adalah program yang langsung diturunkan dari makalah matematika. Jika sebuah variabel berisi koefisien korelasi, sebut saja begitu. Kita punya ribuan tahun bahasa dan penanda untuk berbagi ide; jangan mengenkripsinya lalu menyebutnya rho
  • Saya mencoba memberikannya ke ChatGPT. Saya hanya mengunggah gambar ke antarmuka OpenAI bawaan, dan mengira modelnya entah sudah mengenali soal ini lalu memberi jawaban benar, berhalusinasi membuat jawaban, atau sama sekali menolak menyelesaikannya
    Namun yang terjadi justru begini: https://chatgpt.com/share/682cce62-c53c-8003-be2c-2929395868...
    Singkatnya, model dengan percaya diri mengajukan tebakan, menghitungnya, menyimpulkan salah, lalu terus mencoba lagi, bahkan mengulang tebakan yang sama. Ia sama sekali tidak mengenali simetri dan bertingkah seperti agen yang benar-benar tanpa struktur
    Pada akhirnya ia menyimpulkan dengan kuat bahwa puzzle ini tidak punya solusi; kalau model terus berkinerja seburuk ini pada puzzle-puzzle mendatang, saya harus merevisi kepercayaan saya
  • “Seseorang bernama Sridhar Ramesh” — Sridhar itu jagoan yang layak diikuti. Jarang ada orang yang punya PhD matematika sekaligus kemampuan tingkat PhD dalam shitposting
  • Saya sangat menyukai genre seperti ini. Saya mulai menyebutnya sendiri sebagai “Dantzig Sniping”, dan saya juga punya satu buatan saya: https://x.com/TheOisinMoran/status/1298305686082744320
    Konteks tambahan dan contoh terkait ada di sini: https://x.com/TheOisinMoran/status/1299124512240398336
    • Saya kira namanya diambil dari Gdańsk, alias Danzig, dan jadi penasaran apa yang ditembak di sana
    • Saya penasaran bagaimana masalah dengan sifat seperti ini ditemukan
  • Ini sudah 2025, jadi kenapa penulis tidak memakai emoji buah sungguhan untuk nama variabel?
    • Saat mencoba memahami codebase C yang rumit, mengganti variabel yang ada dengan emoji sering kali membantu
      Jauh lebih mudah melacak variabel mana dipakai di mana, dan lebih enak menangkap struktur murni kode secara sekilas. Contoh yang pernah saya unggah ada di sini: https://imgur.com/F27ZNfk
      Sayangnya, sebagian besar bahasa modern seperti Rust dan JS mengikuti rekomendasi XID_Start/XID_Continue, yang menurut saya motivasinya tidak terlalu kuat, dan mengecualikan semua karakter emoji dari identifier
    • Ini solusi C# buatan Gemini, yang menyelesaikan masalah dengan memakai variabel emoji buah. Sepertinya brute force: https://imgur.com/a/cC5QPH0
    • Tahun ini memang 2025, tetapi tahun bahasa itu dibuat kemungkinan besar bukan 2025
  • Jika memakai konstanta lain selain 4, solusi terkecilnya bisa menjadi benar-benar sangat besar: https://observablehq.com/@robinhouston/a-remarkable-diophant...
    • Saya benar-benar suka cara bodoh tetapi megah untuk memuat angka 120 juta digit di dalam textarea kecil saat diperlukan
  • Saya ingat saat masalah itu pertama kali muncul. Kami semua tertawa keras bersama di seminar teori bilangan
  • Saya suka bagian yang menyelam jauh ke teori bilangan dan graf-graf aneh, tetapi dari puzzle apel/pisang aslinya, saya tidak mengerti apa yang sebenarnya dimaksudkan sebagai bagian yang rumit atau membingungkan
    Apakah ada bagian yang begitu mudah membingungkan sampai membuat orang bertengkar, atau justru ini soal yang begitu mudah sampai semua orang terburu-buru sok pintar?
    Saya mendapatkan 10, 4, 2, tetapi mungkin saja saya yang bingung
    • “Triknya” adalah pada kelompok terakhir hanya ada 3 pisang, sementara kelompok lain berisi 4. Demikian pula pada persamaan terakhir hanya ada satu kelapa
      Jadi tampaknya bisa ditafsirkan sebagai 1 + 10 + 3