1 पॉइंट द्वारा GN⁺ 2025-05-22 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • इंटरनेट पर मिलने वाली फल·इमोजी arithmetic puzzle की एक variant को integer Diophantine equation मानकर, positive integer solution बनाने तक की प्रक्रिया को ट्रैक किया गया है
  • मुख्य tool यह है कि सीधे integer solution ढूंढने के बजाय पहले rational point ढूंढे जाएं, और फिर line या tangent से नए rational points बनाने की geometric method इस्तेमाल की जाए
  • variable substitution और rotation के बाद equation एक symmetric elliptic curve बन जाती है, लेकिन शुरू में दिखने वाले आसान points सीधे original problem के positive solution तक नहीं ले जाते
  • elliptic curve पर दो rational points को जोड़ने वाली line, या किसी एक point की tangent, तीसरा intersection point बनाती है, और Vieta formula की वजह से वह point भी rational point रहता है
  • Mathematica से कम obvious point खोजकर और operations repeat करने के बाद, original variables में वापस लौटने पर संभव बहुत बड़े positive integer solution को construct किया गया

इंटरनेट इमोजी puzzle के math problem में बदलने की प्रक्रिया

  • इंटरनेट पर ऐसे इमोजी arithmetic puzzles खूब फैले हुए थे जिनमें banana की संख्या जैसी details को confusing बनाकर अलग-अलग answers निकलवाए जाते थे
  • 2017 की शुरुआत में r/math पर Facebook-style fruit math puzzles से तंग आ जाने के आशय वाला एक reddit thread आया, और एक user ने fruit pictures इस्तेमाल करके एक ज्यादा मुश्किल problem बनाई
  • Sridhar Ramesh ने उस problem को थोड़ा बदलकर व्यापक रूप से फैलाया, जिससे यह एक notorious problem बन गई जिसका minimum solution बहुत लंबा माना जाता था और जिसके लिए elliptic curve की जानकारी जरूरी समझी जाती थी
  • लक्ष्य उस modified emoji problem को सच में solve करने की प्रक्रिया है

तैयारी का example: Pythagorean triples और rational points

  • पहले Pythagorean triples खोजने की problem को एक आसान example के रूप में लिया गया है
  • integer solutions को सीधे खोजने के बजाय, इसे corresponding unit circle पर rational points खोजने की problem में बदलने से structure सरल हो जाता है
  • unit circle पर किसी rational point से शुरू करके rational slope वाली line खींचें, तो circle से मिलने वाला दूसरा point भी rational point बनता है
    • line और circle के intersection points निकालने पर quadratic equation मिलती है
    • coefficients rational होते हैं और एक root पहले से rational होता है, इसलिए Vieta formula के अनुसार दूसरा root भी rational होता है
  • उल्टा, unit circle पर कोई भी दूसरा rational point starting point से जोड़ने वाली line का rational slope देता है, इसलिए सभी rational points इसी तरीके से प्राप्त किए जा सकते हैं
  • यह प्रक्रिया सभी Pythagorean triples को दो positive integers और उनके multiples के standard form में express करने तक ले जाती है
  • महत्वपूर्ण pattern है line से नया point पाने की method, और original emoji problem में भी मिलती-जुलती idea इस्तेमाल होती है

original equation को elliptic curve में बदलना

  • emoji problem की equation से denominators हटाने के बाद, integer solutions के बजाय variable ratios के लिए rational points खोजने की problem बन जाती है
  • सीधे positive integer solutions ही नहीं खोजे जाते, बल्कि positive और negative शामिल करते हुए rational points के पूरे set को पहले explore किया जाता है
  • graph दो variables की swapping पर नहीं बदलता, इसलिए उसमें tilted symmetry होती है
  • सुविधा के लिए variable substitution से graph को rotate करके axes के प्रति symmetric form में बनाया गया, और इस curve को elliptic curve कहा जाता है
  • graph में आंखों से पहचाने जा सकने वाले आसान rational points हैं, लेकिन वे original problem के valid positive solutions से correspond नहीं करते
  • इसलिए आसान points को starting points बनाकर और ज्यादा rational points बनाने पड़ते हैं

elliptic curve पर भी काम करने वाली line trick

  • elliptic curve पर दो rational points (P), (Q) को जोड़ने वाली line खींचें, तो वह line curve से तीसरे point (R) पर मिलती है
  • यह तीसरा intersection point भी rational point बनता है
    • line equation को elliptic curve equation में substitute करने पर एक variable के लिए cubic equation मिलती है
    • cubic equation के coefficients rational होते हैं
    • पहले से दो roots (P), (Q) के coordinates से आए rational numbers हैं, इसलिए Vieta formula से तीसरा root भी rational होता है
    • line equation में वापस substitute करने पर बाकी coordinate भी rational तय हो जाता है
  • अगर (P=Q) हो, तो दो points को जोड़ने वाली line की जगह उस point पर tangent इस्तेमाल की जाती है, और intersection को multiplicity सहित calculate किया जाता है
  • शुरुआत में मिले आसान points को जोड़ने या tangent खींचने पर भी सिर्फ कुछ points repeat होते हैं, और वे नए व उपयोगी points की ओर expand नहीं होते
  • ये points torsion point हैं, इसलिए वही line trick repeat करने पर भी अब और नए points की तरफ escape नहीं कर पाते

valid region के अंदर rational point खोजना

  • Mathematica से elliptic curve पर कम obvious rational points search किए गए, और उनमें से एक बाद की calculation में इस्तेमाल हुआ
  • लक्ष्य कोई भी arbitrary rational point नहीं है, बल्कि ऐसा point है जो original variables में लौटाने पर तीनों values positive बनाता हो
  • अगर सभी variables negative हों, तो सभी signs flip करके positive solution पाया जा सकता है, इसलिए एक variable को positive मानकर conditions को reverse-trace किया गया
  • यह condition transformed coordinate plane में एक खास green region के रूप में दिखती है, और elliptic curve पर rational point को उस region के भीतर भेजना होता है
  • manual calculation बेहद cumbersome थी, इसलिए line·tangent operations से मिलने वाले intersection coordinates के formulas Mathematica से calculate किए गए
  • दो points को जोड़ने वाली line के तीसरे intersection point और किसी एक point पर tangent से बनने वाले तीसरे intersection point के लिए coordinate formulas बनाए गए, और expressions बेहद complex होने के साथ numbers भी बड़े होते गए

आखिरी positive integer solution बनाना

  • starting rational point से tangent खींचकर नया point लिया गया, फिर उस point से tangent खींचकर next point पाने की प्रक्रिया repeat की गई
  • कई tangent operations के बाद भी target region में सीधे entry नहीं मिली, इसलिए एक point के coordinate signs बदलकर बने point से जोड़कर एक और point बनाया गया
  • अंत में पहले से बचाकर रखे गए एक “good” rational point और पहले मिले बड़े-coordinate वाले point को जोड़कर, आखिरकार target green region के अंदर rational point तक पहुंचा गया
  • इस final rational point को original variables में वापस बदला गया, और denominators के least common multiple से multiply करके positive integer solution construct किया गया
  • final verification में confirm किया गया कि construct किया गया बेहद बड़ा integer solution original emoji problem की equation को satisfy करता है

1 टिप्पणियां

 
GN⁺ 2025-05-22
Hacker News की राय
  • इस समस्या पर एक बेहतरीन Quora उत्तर है: https://www.quora.com/How-do-you-find-the-positive-integer-s...
    • वह Quora पोस्ट Alon Amit ने लिखी है, और संदर्भ के लिए मूल लेख भी Alon Amit को उद्धृत करता है, इसलिए उनके विचार ज़्यादा post-hoc व्याख्या जैसे हैं
  • इसी सिलसिले में, छोटे बच्चों को गणित सिखाते और होमवर्क में मदद करते समय मैं चीज़ों को समीकरणों के रूप में फिर से लिखता था, या उस स्तर पर पहुँचने पर समीकरणों को ही बदलकर लिखता था
    बस x जैसी चीज़ों की जगह मुलायम बादल, तारे जैसे नाम इस्तेमाल करता था, और बच्चे झुंझलाते हुए भी रुचि बनाए रखते थे; बाद में उन्होंने दोस्तों की मदद करते समय भी यही किया
    इस तरह की abstraction पहली बार सीखते समय कैसा लगता है, यह भूलना आसान है; यह दिखाना ज़रूरी था कि x कोई खास चीज़ नहीं है—वह सूरज भी हो सकता है, या “बिल्लियों की कुल संख्या” जैसा कोई वाक्यांश भी
    • गणित की संस्कृति में minimalism है, इसलिए जब आप expressions फेंकते-घुमाते हैं तो हर चीज़ को जितना हो सके छोटा रखना मददगार होता है—यह बात कुछ हद तक समझ आती है
      लेकिन बाद में जब यह publish होता है तो readability सचमुच खराब हो जाती है। हालत ऐसी हो जाती है: “इस expression में कोई item बड़ा रोल निभा रहा है, पर आखिर इसका मतलब क्या है? किसी ने इसे φ नाम दे दिया है, इसलिए समझ नहीं आ रहा”
      मैं मज़ाक में कहता हूँ कि अगर आपको लगता है programmers नामकरण में खराब हैं, तो mathematicians को देखिए। Mathematicians को नाम न रख पाने की क्षमता पर अजीब-सा गर्व होता है
      सबसे बुरा वह program होता है जो सीधे किसी गणित के paper से निकला हो। अगर variable में correlation coefficient है, तो उसे वही कहिए। विचार बाँटने के लिए हमारे पास हजारों साल की भाषा और notation हैं; उन्हें encrypt करके rho मत कहिए
  • मैंने इसे ChatGPT को देकर देखा। बेसिक OpenAI interface में सिर्फ image upload की, और उम्मीद थी कि model या तो समस्या पहले से पहचानकर सही जवाब दे देगा, या hallucinate करके जवाब बना देगा, या सीधे problem solve करने से मना कर देगा
    लेकिन असल में यह हुआ: https://chatgpt.com/share/682cce62-c53c-8003-be2c-2929395868...
    संक्षेप में, model ने पूरे confidence से guess दिया, calculate किया, उसे गलत माना और फिर बार-बार कोशिश करता रहा—यहाँ तक कि वही guess दोहराता रहा। उसने symmetry को बिल्कुल नहीं पहचाना और पूरी तरह structure-less actor जैसा व्यवहार किया
    आखिर में उसने मजबूती से निष्कर्ष निकाला कि इस puzzle का कोई solution नहीं है; अगर आगे की puzzles में भी model इतना खराब perform करता है, तो मुझे अपने भरोसे को अपडेट करना पड़ेगा
    • Gemini का result यहाँ है: https://g.co/gemini/share/ab287b25648f
      ChatGPT o3 से भी पूछा, और उसने 11.5 मिनट तक सोचा: https://chatgpt.com/share/682d0993-db4c-8004-a66c-3908ef7203...
    • प्रभावशाली है। अगर मनमाने ढंग से “ऐसे numbers जिन्हें कोई इंसान दिमाग में calculate या समझ सकता है” को reasonable solution मान लें, तो निश्चित रूप से कोई reasonable solution नहीं है
      क्या ChatGPT का कोई version नहीं है जो Wolfram Alpha से connected हो? जानना चाहूँगा कि वह try किया गया था या नहीं
  • “Sridhar Ramesh नाम का कोई व्यक्ति” — Sridhar follow करने लायक उस्ताद हैं। Maths में PhD और साथ ही shitposting में भी PhD-स्तर का व्यक्ति मिलना आम नहीं है
  • मुझे यह genre सचमुच बहुत पसंद है। मैंने इसे खुद “Dantzig Sniping” कहना शुरू कर दिया है, और मेरा बनाया हुआ भी एक है: https://x.com/TheOisinMoran/status/1298305686082744320
    ज़्यादा context और related examples यहाँ हैं: https://x.com/TheOisinMoran/status/1299124512240398336
    • मुझे लगा था नाम Gdańsk, यानी Danzig, से लिया गया है, और सोच रहा था कि वहाँ क्या snipe किया गया था
    • जिज्ञासा है कि ऐसी properties वाली problems कैसे खोजी जाती हैं
  • 2025 में भी लेखक variable names में असली fruit emoji क्यों नहीं इस्तेमाल करता?
    • जटिल C codebase समझने की कोशिश करते समय existing variables को emoji में बदलना कई बार मददगार रहा है
      किस variable का कहाँ इस्तेमाल हो रहा है, trace करना बहुत आसान हो जाता है, और code की शुद्ध structure एक नज़र में पकड़ में आती है। मैंने पहले जो example पोस्ट किया था वह यहाँ है: https://imgur.com/F27ZNfk
      दुर्भाग्य से Rust और JS जैसी अधिकांश modern languages XID_Start/XID_Continue recommendation follow करती हैं, जिसकी motivation मुझे निजी तौर पर बहुत मजबूत नहीं लगती, और वे सभी emoji characters को identifiers से बाहर कर देती हैं
    • यह Gemini द्वारा बनाया गया C# solution है, जिसमें fruit emoji variables इस्तेमाल करके problem solve की गई। शायद brute force है: https://imgur.com/a/cC5QPH0
    • यह साल 2025 है, लेकिन वह language जिस साल बनी थी वह शायद 2025 नहीं रहा होगा
  • 4 की जगह कोई दूसरा constant इस्तेमाल करें तो सबसे छोटा solution वाकई विशाल number हो सकता है: https://observablehq.com/@robinhouston/a-remarkable-diophant...
    • 12 करोड़ अंकों वाले number को एक छोटे textarea में जरूरत पड़ने पर load करने का मूर्खतापूर्ण लेकिन भव्य तरीका मुझे सच में पसंद आया
  • मुझे याद है जब यह problem पहली बार आई थी। number theory seminar में हम सब जोर से हँसे थे
  • number theory की गहराइयों और अजीब graphs तक जाना अच्छा है, लेकिन मूल apple/banana puzzle में आखिर tricky या confusing होने के लिए intended क्या था, यह समझ नहीं आता
    क्या इसमें ऐसा कोई हिस्सा है जो लोगों को बहस कराने जितना आसानी से confusing है, या यह इतनी आसान problem है कि हर कोई जल्दी-जल्दी smart दिखने की कोशिश करता है?
    मुझे 10, 4, 2 मिला, लेकिन शायद मैं ही confuse हुआ हूँ
    • “trick” यह है कि आखिरी bunch में सिर्फ 3 bananas हैं, जबकि बाकी bunches में 4 हैं। इसी तरह आखिरी equation में केवल एक coconut है
      इसलिए इसे 1 + 10 + 3 के रूप में interpret किया जा सकता है