ปัญหาอีโมจิ (2022)
(artofproblemsolving.com)- ติดตามกระบวนการมองปริศนาสมการผลไม้·อีโมจิบนอินเทอร์เน็ตในรูปแบบหนึ่งว่าเป็น สมการไดโอแฟนไทน์เชิงจำนวนเต็ม และไล่ไปจนถึงการสร้างคำตอบจำนวนเต็มบวก
- เครื่องมือหลักคือวิธีเชิงเรขาคณิตที่แทนที่จะหาคำตอบจำนวนเต็มโดยตรง จะหา จุดตรรกยะ ก่อน แล้วสร้างจุดตรรกยะใหม่ด้วยเส้นตรงหรือเส้นสัมผัส
- หลังการแทนตัวแปรและการหมุน สมการจะกลายเป็น เส้นโค้งวงรี ที่สมมาตร แต่จุดง่าย ๆ ที่เห็นในตอนแรกไม่ได้เชื่อมไปสู่คำตอบบวกของโจทย์เดิมโดยตรง
- บนเส้นโค้งวงรี เส้นตรงที่เชื่อมจุดตรรกยะสองจุด หรือเส้นสัมผัสที่จุดหนึ่ง จะสร้างจุดตัดจุดที่สาม และด้วยสูตรของ Vieta จุดนั้นก็ยังคงเป็นจุดตรรกยะ
- หลังจากใช้ Mathematica ค้นหาจุดที่ไม่ตื้นเขินนักและทำการคำนวณซ้ำ ๆ ก็สามารถสร้าง คำตอบจำนวนเต็มบวกขนาดมหึมา ที่เป็นไปได้เมื่อแปลงกลับไปยังตัวแปรเดิม
กระบวนการที่ปริศนาอีโมจิบนอินเทอร์เน็ตกลายเป็นโจทย์คณิตศาสตร์
- บนอินเทอร์เน็ตมี ปริศนาสมการอีโมจิ แพร่หลาย ซึ่งจงใจทำให้สับสนในรายละเอียดอย่างจำนวนกล้วย จนทำให้ได้คำตอบต่างกัน
- ต้นปี 2017 ใน r/math มี reddit thread ที่มีใจความว่าผู้คนเริ่มเอือมกับปริศนาคณิตศาสตร์ผลไม้แบบ Facebook และมีผู้ใช้คนหนึ่งสร้างโจทย์ที่ยากขึ้นโดยใช้ภาพผลไม้
- เมื่อ Sridhar Ramesh ดัดแปลงปัญหานั้นเล็กน้อยและเผยแพร่ออกไปอย่างกว้างขวาง มันก็กลายเป็นปัญหาชื่อเสียที่เชื่อกันว่าคำตอบต่ำสุดยาวมาก และต้องใช้ความรู้เรื่อง เส้นโค้งวงรี
- เป้าหมายคือการไล่ดูขั้นตอนการแก้ปัญหาอีโมจิเวอร์ชันดัดแปลงนั้นจริง ๆ
ตัวอย่างเตรียมความพร้อม: พีทาโกรัสทริปเปิลและจุดตรรกยะ
- เริ่มจากใช้ปัญหาการหาพีทาโกรัสทริปเปิลเป็นตัวอย่างที่ง่ายกว่า
- แทนที่จะหาคำตอบจำนวนเต็มโดยตรง หากเปลี่ยนเป็นปัญหาการห้า จุดตรรกยะ บนวงกลมหนึ่งหน่วยที่สอดคล้องกัน โครงสร้างจะเรียบง่ายขึ้น
- หากเริ่มจากจุดตรรกยะจุดหนึ่งบนวงกลมหนึ่งหน่วย แล้วลากเส้นตรงที่มีความชันเป็นจำนวนตรรกยะ จุดที่สองที่ตัดกับวงกลมก็จะเป็นจุดตรรกยะด้วย
- เมื่อต้องหาจุดตัดของเส้นตรงกับวงกลม จะได้สมการกำลังสอง
- สัมประสิทธิ์เป็นจำนวนตรรกยะ และเมื่อรู้ว่ารากหนึ่งเป็นจำนวนตรรกยะอยู่แล้ว ตามสูตรของ Vieta อีกรากก็เป็นจำนวนตรรกยะเช่นกัน
- ในทางกลับกัน จุดตรรกยะอื่นบนวงกลมหนึ่งหน่วยจะมีความชันของเส้นตรงที่เชื่อมกับจุดตั้งต้นเป็นจำนวนตรรกยะ จึงสามารถสร้างจุดตรรกยะทั้งหมดได้ด้วยวิธีเดียวกัน
- กระบวนการนี้นำไปสู่รูปมาตรฐานที่เขียนพีทาโกรัสทริปเปิลทั้งหมดด้วยจำนวนเต็มบวกสองจำนวนและตัวคูณ
- รูปแบบสำคัญคือ วิธีได้จุดใหม่ด้วยเส้นตรง และแนวคิดคล้ายกันนี้ก็ถูกใช้กับปัญหาอีโมจิเดิมด้วย
แปลงสมการเดิมให้เป็นเส้นโค้งวงรี
- หลังจากกำจัดตัวส่วนของสมการในปัญหาอีโมจิแล้ว ปัญหาจะถูกแปลงจากการหาคำตอบจำนวนเต็มไปเป็นการหา จุดตรรกยะ ของอัตราส่วนตัวแปรแทน
- จึงไม่ได้มองหาคำตอบจำนวนเต็มบวกโดยตรง แต่สำรวจจุดตรรกยะทั้งหมดก่อน รวมทั้งค่าบวกและลบ
- กราฟไม่เปลี่ยนแปลงเมื่อสลับตัวแปรสองตัว จึงมีสมมาตรแบบเอียง
- เพื่อความสะดวก จึงใช้การแทนตัวแปรเพื่อหมุนกราฟให้เป็นรูปที่สมมาตรกับแกน และเรียกเส้นโค้งนี้ว่า เส้นโค้งวงรี
- บนกราฟมีจุดตรรกยะง่าย ๆ ที่มองเห็นได้ด้วยตา แต่ไม่สอดคล้องกับคำตอบบวกที่ใช้ได้ของโจทย์เดิม
- ดังนั้นจึงต้องใช้จุดง่ายเหล่านั้นเป็นจุดตั้งต้นเพื่อสร้างจุดตรรกยะเพิ่ม
กลเม็ดเส้นตรงที่ใช้ได้กับเส้นโค้งวงรีด้วย
- หากลากเส้นตรงเชื่อมจุดตรรกยะสองจุด (P), (Q) บนเส้นโค้งวงรี เส้นตรงนั้นจะตัดเส้นโค้งอีกครั้งที่จุดที่สาม (R)
- จุดตัดที่สามนี้ก็เป็น จุดตรรกยะ เช่นกัน
- เมื่อนำสมการเส้นตรงไปแทนในสมการเส้นโค้งวงรี จะได้สมการกำลังสามในตัวแปรหนึ่งตัว
- สัมประสิทธิ์ของสมการกำลังสามเป็นจำนวนตรรกยะ
- เมื่อรู้แล้วว่ารากสองรากมาจากพิกัดของ (P), (Q) ซึ่งเป็นจำนวนตรรกยะ ตามสูตรของ Vieta รากที่สามก็เป็นจำนวนตรรกยะด้วย
- เมื่อนำกลับไปแทนในสมการเส้นตรงอีกครั้ง พิกัดที่เหลือก็ถูกกำหนดเป็นจำนวนตรรกยะ
- ในกรณี (P=Q) จะใช้ เส้นสัมผัส ที่จุดนั้นแทนเส้นตรงที่เชื่อมสองจุด และนับจุดตัดโดยรวมความซ้ำซ้อนด้วย
- แม้จะเชื่อมจุดง่ายที่พบในตอนแรกหรือวาดเส้นสัมผัส ก็ยังวนอยู่กับเพียงไม่กี่จุด และไม่ขยายไปสู่จุดใหม่ที่มีประโยชน์
- จุดเหล่านี้เป็น torsion point จึงไม่สามารถหลุดไปหาจุดใหม่ได้ แม้จะทำกลเม็ดเส้นตรงแบบเดิมซ้ำ ๆ
การหาจุดตรรกยะในบริเวณที่ใช้ได้
- ใช้ Mathematica สำรวจจุดตรรกยะที่ไม่ตื้นเขินนักบนเส้นโค้งวงรี และหนึ่งในนั้นถูกนำมาใช้ในการคำนวณต่อมา
- เป้าหมายไม่ใช่จุดตรรกยะใดก็ได้ แต่เป็นจุดที่เมื่อแปลงกลับไปยังตัวแปรเดิมแล้ว ค่าทั้งสามเป็นบวกทั้งหมด
- หากตัวแปรทั้งหมดเป็นลบ ก็สามารถกลับเครื่องหมายทั้งหมดเพื่อให้ได้คำตอบบวก จึงกำหนดให้ตัวแปรหนึ่งเป็นบวกแล้วไล่เงื่อนไขย้อนกลับ
- เงื่อนไขนี้แสดงออกมาเป็น บริเวณสีเขียว เฉพาะส่วนหนึ่งบนระนาบพิกัดที่แปลงแล้ว และต้องส่งจุดตรรกยะบนเส้นโค้งวงรีเข้าไปในบริเวณนั้น
- การคำนวณด้วยมือยุ่งยากมาก จึงใช้ Mathematica คำนวณสูตรพิกัดของจุดตัดที่ได้จากการทำเส้นตรงและเส้นสัมผัส
- มีการสร้างสูตรพิกัดสำหรับจุดตัดที่สามจากเส้นตรงที่เชื่อมสองจุด และสำหรับจุดตัดที่สามจากเส้นสัมผัสที่จุดเดียวกัน โดยเมื่อสมการซับซ้อนขึ้น ตัวเลขก็ใหญ่ขึ้นมาก
การประกอบคำตอบจำนวนเต็มบวกสุดท้าย
- เริ่มจากจุดตรรกยะตั้งต้น วาดเส้นสัมผัสเพื่อให้ได้จุดใหม่ แล้ววาดเส้นสัมผัสที่จุดใหม่นั้นอีกเพื่อให้ได้จุดถัดไป ทำซ้ำไปเรื่อย ๆ
- หลังการทำเส้นสัมผัสหลายครั้งก็ยังไม่เข้าไปในบริเวณเป้าหมายโดยตรง จึงเชื่อมต่อเพิ่มเติมกับจุดที่ได้จากการสลับเครื่องหมายพิกัดของจุดหนึ่งเพื่อสร้างอีกจุดหนึ่ง
- สุดท้ายจึงเชื่อม จุดตรรกยะที่ดี ซึ่งเก็บไว้ก่อนหน้านี้เข้ากับจุดที่มีพิกัดขนาดใหญ่ที่ได้มาก่อน และในที่สุดก็ไปถึงจุดตรรกยะภายในบริเวณสีเขียวเป้าหมาย
- จากนั้นนำจุดตรรกยะสุดท้ายนี้แปลงกลับไปเป็นตัวแปรเดิม แล้วคูณด้วยตัวคูณร่วมน้อยของตัวส่วนเพื่อสร้าง คำตอบจำนวนเต็มบวก
- ในการตรวจสอบขั้นสุดท้าย ยืนยันได้ว่าคำตอบจำนวนเต็มขนาดมหึมาที่สร้างขึ้นนั้นสอดคล้องกับสมการของปัญหาอีโมจิเดิม
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
แต่แทนที่จะใช้ตัวอย่างเช่น
xผมใช้ชื่ออย่าง เมฆนุ่มฟู หรือดาว เด็ก ๆ แม้จะหงุดหงิดแต่ก็ยังสนใจอยู่ และภายหลังได้ยินว่าพวกเขาก็ทำแบบเดียวกันเวลาช่วยเพื่อนมันง่ายที่จะลืมความรู้สึกตอนเริ่มเรียนรู้ นามธรรม แบบนี้ แต่สิ่งสำคัญคือการแสดงให้เห็นว่า
xไม่ได้มีอะไรพิเศษ อาจเป็นดวงอาทิตย์ หรือวลีอย่าง “จำนวนแมวทั้งหมด” ก็ได้แต่พอภายหลังตีพิมพ์แล้ว ความอ่านง่ายแย่ลงจริง ๆ กลายเป็นสถานการณ์ประมาณว่า “มีพจน์หนึ่งที่มีบทบาทสำคัญในสมการนี้ แต่มันหมายถึงอะไรกันแน่? ใครบางคนตั้งชื่อมันว่า
φเลยไม่รู้เลย”ผมมักพูดเล่นว่า ถ้าคุณคิดว่าโปรแกรมเมอร์ตั้งชื่อไม่เก่ง ลองดูนักคณิตศาสตร์สิ นักคณิตศาสตร์มีความภาคภูมิใจประหลาด ๆ ในความสามารถด้านการตั้งชื่อแย่
แย่ที่สุดคือโปรแกรมที่สืบทอดมาจากบทความคณิตศาสตร์โดยตรง ถ้าตัวแปรมี ค่าสัมประสิทธิ์สหสัมพันธ์ อยู่ ก็เรียกมันแบบนั้นไปเลย เรามีภาษาและสัญลักษณ์ที่สั่งสมมาหลายพันปีเพื่อแบ่งปันไอเดีย อย่าเข้ารหัสมันแล้วเรียกว่า
rhoแต่ผลจริงออกมาเป็นแบบนี้: https://chatgpt.com/share/682cce62-c53c-8003-be2c-2929395868...
สรุปคือโมเดลเดาคำตอบอย่างมั่นใจ ลองคำนวณ เห็นว่าผิด แล้วก็พยายามใหม่ไปเรื่อย ๆ แถมยังเดาซ้ำแบบเดิมด้วย มันจำ สมมาตร ไม่ได้เลย และทำตัวเหมือนผู้กระทำที่ไม่มีโครงสร้างโดยสิ้นเชิง
สุดท้ายมันยืนยันอย่างหนักแน่นว่าปริศนานี้ไม่มีคำตอบ ถ้าโมเดลยังทำงานแย่แบบนี้กับปริศนาในอนาคต ผมคงต้องปรับความเชื่อของตัวเองใหม่
ผมถาม ChatGPT o3 ด้วย และมันคิดอยู่ 11.5 นาที: https://chatgpt.com/share/682d0993-db4c-8004-a66c-3908ef7203...
มันมี ChatGPT เวอร์ชันที่เชื่อมกับ Wolfram Alpha ไม่ใช่เหรอ? สงสัยว่าลองใช้ตัวนั้นหรือยัง
บริบทและตัวอย่างที่เกี่ยวข้องเพิ่มเติมอยู่ที่นี่: https://x.com/TheOisinMoran/status/1299124512240398336
ติดตามได้ง่ายขึ้นเยอะว่าตัวแปรไหนถูกใช้ที่ไหน และมองเห็นโครงสร้างล้วน ๆ ของโค้ดได้ดีขึ้นในพริบตา ตัวอย่างที่เคยโพสต์ไว้ก่อนหน้านี้อยู่ที่นี่: https://imgur.com/F27ZNfk
น่าเสียดายที่ภาษาโมเดิร์นส่วนใหญ่อย่าง Rust และ JS ทำตามคำแนะนำ XID_Start/XID_Continue ซึ่งโดยส่วนตัวแล้วผมว่ามีแรงจูงใจไม่ค่อยหนักแน่นนัก และกัน อักขระอีโมจิ ทั้งหมดออกจาก identifier
4คำตอบที่เล็กที่สุดอาจกลายเป็น จำนวนที่มหึมาจริง ๆ ได้: https://observablehq.com/@robinhouston/a-remarkable-diophant...มันมีจุดที่สับสนง่ายพอจะทำให้คนเถียงกันหรือเปล่า หรือจริง ๆ มันง่ายพอที่จะทำให้ทุกคนรีบออกมาอวดฉลาดกัน?
ผมได้
10, 4, 2แต่บางทีอาจเป็นผมเองที่สับสนก็ได้ดังนั้นจึงดูเหมือนตีความได้เป็น
1 + 10 + 3