วงแหวนเว็บ

neizod's speculation

insufficient data for meaningful answer

9÷3(1+2)

Thursday, September 23, 2021, 09:29 PM

ประเด็น 9÷3(1+2) วนกลับมาเป็นรอบที่ n จำได้ว่าเคยพูดถึงเรื่องนี้ไปหลายรอบแล้ว แต่พอมีข้อมูลใหม่ๆ เลยขอมาบ่น เอ้ย มาจดบันทึกความคิดตัวเองอีกซักรอบ

คือจำได้ว่าตอนเรียนบนกระดาษและปากกาก็ไม่ได้มีปัญหากับทั้งเครื่องหมาย ÷ หรือการเขียนหารแบบเศษส่วนบนล่างอะไรหรอก … เอาจริงๆ อาจจะรู้สึกชอบแบบเศษส่วนมากกว่าด้วยซ้ำเพราะเห็นบ่อย (แอบอ่านตำราปีถัดไปล่วงหน้า 🤓) และไม่เคยเห็น ÷ อีกเลยนอกจากบนเครื่องคิดเลขแม่ค้า

แต่พอเริ่มได้ใช้คอมพิวเตอร์และหัดจดบันทึกคณิตศาสตร์ลงไฟล์ ด้วยความที่ตอนนั้นไม่รู้จัก $\LaTeX$ ไม่มีวิธีจดดีๆ ที่จะเขียนสมการได้สวยๆ ใช้เป็นแค่ notepad ก็เลยต้องพยายามเขียนสมการให้อยู่ในรูปบรรทัดเดียว (และใช้แค่ ASCII) ที่ยังอ่านได้รู้เรื่อง

ตอนนั้นรู้จัก multiply by juxtaposition แล้ว และเข้าใจว่ามี precedence สูงกว่าการเขียนเครื่องหมายคูณหารแบบ explicit (เพราะไม่งั้นเค้าจะคิดค้น juxtaposition มาทำไม? คงไม่ใช่แค่เหตุผลว่ามันคล้ายตัว x แน่ๆ เพราะเครื่องหมายคูณก็สามารถถูกเขียนด้วยจุดได้อยู่ดี) เลยทำให้เวลาจะจดอะไรที่มันต้องหารหลายครั้ง ก็จะไม่ใส่วงเล็บให้เสียเวลาแล้ว เช่น n!/r!(n-r)! หรือ (-b+-sqrt(4ac-b^2))/2a นั่นเอง (อันที่จริง ตรงเลขยกกำลังแบบ b^2 หลายครั้งก็จดแค่ b2 ด้วยซ้ำ เช่น (a+b)2 = a2 + 2ab + b2 หน่ะ)

ยังมีประเด็นอีกว่าถ้าอยากได้ $\frac12x$ ไร้งี้จริง เวลาจดเราก็คงไม่จดเป็น 1/2x ให้เปลืองตัวอักษรอะนะ แต่จัดตำแหน่งตัวแปรให้สำเร็จแล้วจดเป็น x/2 แทนไปเลย1 เพราะงั้นเราเองจึงไม่งงว่าเวลาเห็น 1/2x ที่ตัวเองจด ว่านั่นหมายถึงเราต้องการ $\frac1{2x}$ ตีความได้ทางเดียวเท่านั้น

จะมีจุดที่ซับซ้อนขึ้นจนเรายอมให้มีข้อยกเว้น ก็คือตอนทำสมการดิฟ d/dx f(x) ไรงี้ ซึ่งคิดว่าเขียน d/dx ไว้ด้านหน้าแล้วค่อยเว้นวรรคพร้อมตามด้วย f(x) มันจะดูง่ายและเป็นธรรมชาติกว่าการเขียน df(x)/dx จุดสำคัญคือต้องอย่าลืมเว้นวรรค … คือถ้าไม่เว้นวรรคก็ไม่ได้งงอะไรหรอก แค่ไม่เว้นวรรคแล้วมันไม่สวย 555555555555555555555555

แต่คนอื่นๆ คงไม่ได้คิดงั้น เพราะตั้งแต่มีโจทย์แนว a/b(c+d) ก็ได้เห็นเสียงแตกครึ่ง โดยฝั่งที่ตีความว่ามันคือ (a/b)*(c+d) ซึ่งก็คือมองว่า juxtaposition ไม่ควรมี precedence สูงกว่าการเขียนแบบ explicit และให้ใช้ Padmé (pun intended) น่าจะมาจากฝั่งโปรแกรมเมอร์เสียส่วนใหญ่ เพราะต้องการกฎที่เรียบง่ายชัดเจนไม่กำกวมสามารถคิดคำนวณได้ตามที่เขียนไว้ทันที (และยังเห็นผลได้อย่างรวดเร็วว่าที่เขียนไปนั้นถูกหรือผิดเพียงแค่เอาไปโค้ดให้โปรแกรมมันทำงาน)

ซึ่งก็เข้าใจ (และซึ้งใจ) เป็นอย่างมาก เพราะตอนที่สร้าง parser สมการเอง เราพบว่ามันยากมากที่จะนิยาม CFG ให้กับ multiply by juxtaposition จนสุดท้ายก็ยอมแพ้แล้วให้ใส่วงเล็บเอาเหอะ

และอันที่จริงใน context ของโปรแกรมมิ่ง เราก็ย้ายข้างไปอยู่ฝั่งนั้นเรียบร้อยแล้ว อย่างตอนสร้างฟังก์ชัน ${n \choose r} = \frac{n!}{r!(n-r)!}$ ใน Python นี่เราถึงขั้น hack ตัวเองให้เขียนโดยใช้เครื่องหมายหารหลายครั้งต่อกันแบบนี้ f(n)/f(r)/f(n-r) ไปเลยด้วยซ้ำ ไม่ใช่ค่อยๆ ใส่วงเล็บจัดกลุ่ม f(n)/(f(r)*f(n-r)) อีกต่อไปแล้ว (ประหยัดตัวอักษรที่เป็นวงเล็บไปได้ตั้ง 2 ตัวเลยนะ!!)

แต่ก็อย่างที่บอกว่าเสียงแตกครึ่ง เข้าใจว่าฝั่งที่เชียร์ให้ juxtaposition มี precedence สูงกว่านั้นน่าจะมาจากคนที่ทำงานคลุกคลีกับคณิตศาสตร์เป็นหลักในชีวิตประจำวัน โดยบางทีอาจต้องพิมพ์คณิตศาสตร์แบบ plaintext หรือพื้นที่กระดาษไม่พอจึงต้องพิมพ์สมการ $\LaTeX$ แนบแบบบรรทัดเดียวเอา เนื่องมาจากข้อจำกัดของการสื่อสารทางคอมพิวเตอร์ที่ไม่เอื้อให้เขียนสมการสวยๆ ได้นั่นเอง

การเขียน $\alpha/2\pi$ ที่หมายถึง $\frac\alpha{2\pi}$ จากหนังสือ Visual Differential Geometry and Forms หน้า 8 โดย Tristan Needham หนังสือพิมพ์ปี 2021 นี่เอง2

ยิ่งไปกว่านั้นเมื่อพูดถึง $\LaTeX$ ก็ต้องย้อนนึกถึง $\TeX$ ที่ Knuth ออกแบบไว้ ซึ่งเราสามารถเขียนการหารแบบเศษส่วนได้โดยการใช้คำสั่ง \over โดยโปรแกรมมันจะมองว่า \over เนี่ยมี precedence ต่ำที่สุดเลยด้วยซ้ำ! ซึ่งก็คือถ้าเราเขียน 1+2\over3+4 นี่ผลลัพธ์ที่จะได้กลับมาคือ $1+2\over3+4$ เลยนะ ไม่ใช่ว่าได้ $1{+}\frac23{+}4$ อย่างที่เราคุ้นชินในปัจจุบัน 555555555555555

น่าจะนับได้ว่า Knuth นี่นักพิมพ์สมการอย่างย่อตัวพ่อเลยนี่หว่า ไม่ใช่แค่สนใจ juxtaposition แต่สนใจเส้นหารเศษส่วนทั้งเส้นในแบบเดียวกันกับตอนใช้กระดาษปากกาไปเลย 😎

(สรุปเป็นรอบที่ n) จริงๆ แล้วโจทย์แนวนี้มันก็คือโจทย์เดาใจคนออกอะนะว่าเค้ากำลังคิดอะไรอยู่ ซึ่งถ้ามันเป็นโจทย์ที่ตั้งใจกวนให้คนแตกคอกันแล้วก็ไม่มีค่าที่จะไปแก้หรอก (หนำซ้ำไอ้คนที่ออกโจทย์นี้สมควรโดนด่าอีกด้วย ว่างนักหรือไงมาแต่งโจทย์ที่ไร้ประโยชน์ต่อมวลมนุษยชาติเนี่ยห๊ะ?) แต่ถ้าใครไปเจอหลักฐานทางประวัติศาสตร์ที่เหล่านักคณิตศาสตร์เค้าทดเลขเอาไว้อ่านเอง การจะตีความให้ถูกมันก็คงไม่ใช่การยึดกฎที่ตัวเองรู้เป็นตัวตั้ง แต่เป็นการดู context รอบข้างอย่างรอบคอบแล้วตีความว่าต้นทางเค้าต้องการสื่อถึงอะไรกันแน่แหละนะ (ส่วนถ้าใครเจอสมการที่เราเคยพิมพ์ก็เดาไว้เลยว่าเลือกข้างให้ทำ juxtaposition ก่อนทั้งหมด (ซึ่งก็คงไม่มีหลักฐานเหลือเพราะเว็บวิชาการ.คอมทำ database พังไปแล้ว 55555555TT55555))

อนึ่ง เขียนเพื่อให้ตัวเองเข้าใจแค่คนเดียวก็เรื่องนึง3 เขียนเพื่อสื่อสารกับคนอื่นให้เข้าใจก็อีกเรื่องนึง เพราะงั้นถ้าไม่ได้เหนือบ่ากว่าแรงอะไร ยอมรับกฎการเขียนที่คนส่วนใหญ่เห็นตรงกันแล้วเอาเวลาไปสนใจกับจุดที่สำคัญจริงๆ ดีกว่า เนอะ 😉

  1. มีข้อยกเว้นที่เดียวคือ s(t) = ut + (1/2)at2 ที่เลือกเขียน $1/2$​ แยกมาเต็มๆ แทนที่จะเอาไปหาร เพราะทำแบบนี้แล้วเห็นได้ชัดว่ามันก็แค่การอินทริเกรตบนตัวแปร t จากความว่างเปล่าสองครั้ง ซึ่งแม้จะเขียนแยกแต่ก็ใส่วงเล็บครอบให้อยู่ดี 

  2. ยังมีหนังสืออีกหลายเล่มที่เขียนและตีความแบบเดียวกัน เช่น An Illustrated Theory of Numbers, New Horizon in Geometry, Geometric Folding Algorithms ฯลฯ 

  3. ถ้าขนาดย้อนกลับมาอ่านเองยังไม่รู้เรื่องก็จำใส่สมองไว้ว่าอย่าริอาจเขียนลวกๆ แบบนั้นอีก 5555 

Originally published on: Facebook

neizod

author