Apr 25, 2009

Knowledge จับตัวเลขมาตัดแบ่งยังไงให้ได้ผลคูณมากที่สุด?

เมื่อต้นเดือน ได้มีโอกาสไปเป็นพี่ค่ายโอลิมปิกฟิสิกส์ดาราศาสตร์
เจอน้องกวนๆ คนนึง เป็นคนที่ต(ร)งมากๆ ได้ฝากคำถามมาว่า

"ถ้านำเลขจำนวนเต็มบวกมาเขียนในรูปการบวกของจำนวนเต็มบวก
แล้วเอาจำนวนที่กระจายนั้นมาคูณกัน ทำยังไงให้ได้ผลลัพท์มากที่สุด?"

อันนี้ไม่เคยทำ แต่จำได้ลางๆ ว่าเห็นผ่านๆ ใน My Math เลยตอบว่าทำได้
คุณน้องเลยตั้งคำถามต่อไปว่า "ถ้าขยายขอบเขตเป็นจำนวนจริงหละ"

คำตอบแรกที่แว๊บขึ้นมาในใจทันทีเลยคือ มันต้องเกี่ยวข้อกับค่า e แน่ๆ
แต่ด้วยความขี้เกียจ+ค่ายจัดบนดอยอินทนนท์ จะให้ขบปัญหาก็กระไรอยู่
ไปเที่ยวดอยให้สนุกดีกว่า (แม้จะมาเป็นรอบที่สี่ของปีนี้แล้วก็ตาม)

หลังจากลงดอยเสร็จ ก็ลืมเรื่องนี้ไปเลย ...จนได้ไปฟังโปรเจค JSTP
ตอนนั้นอยู่ในอารมณ์ไหนไม่รู้ สงสัยเซ็งที่ฟังเด็กพรีเซนท์ไม่รู้เรื่องมั้ง
ก็แว๊บนึกถึงโจทย์ข้อนี้ขึ้นมาได้ เลยทดลองหาคำตอบตรงนั้นเลย
(นักคณิตศาสตร์เค้ามีแต่นั่งพิสูจน์ ไอ่นี่นั่งทดลอง 555)
(บ่นอีกนิด เซ็งมากลืมเครื่องคิดเลข ส่วนมือถือคิด ln ได้ แต่ไม่มี e ให้ใช้)

สรุปว่า ทดลองยังไม่ทันเสร็จ ก็ต้องได้ฤกษ์กลับบ้านซะก่อน
เลยมาทำต่อที่บ้าน คราวนี้ได้ใช้ Excel แล้ว ง่ายขึ้นมากๆ เลย ^^
ทดลองเสร็จก็มานั่งพิสูจน์ต่อ ดังนี้

ก่อนอื่น แบ่งจำนวนจริงบวกเป็นสองส่วน ผลคูณที่มีค่ามากที่สุดหาได้จาก
ให้ m2(k) = k (n-k) เป็นฟังก์ชันผลคูณของเลขที่แบ่งส่วน
โดยให้ n คือจำนวนจริงที่ต้องการแบ่งส่วน
และ k คือตัวแปรที่ใช้เพื่อแบ่งส่วนจาก n
d/dx[m2(k)] = n - 2k
0 = n - 2k
k = n/2
หมายถึง เมื่อต้องการให้ได้ผลคูณมากที่สุด ต้องแบ่งทั้งสองสวนนี้เท่ากัน
ซึ่งสำหรับการแบ่งมากกว่าสองส่วน พิสูจน์ได้ในทำนองเดียวกันครับ ^^"
(ไม่ลงพิสูจน์ไว้ละ มันยาก+ยาว+ขี้เกียจ+ยังไม่ได้ลองทำ ...เอ๋ ยังไงเนี่ย)

หลังจากที่ทราบวิธีแบ่งส่วนที่ดีที่สุดแล้ว คำถามต่อมาคือแบ่งกี่ส่วนดี?
ทำได้โดยกำหนดสมการ mx(k) = (k/x)x
โดยที่ x คือจำนวนส่วนที่ต้องการแบ่ง
d/dx[mx(k)] = (k/x)x(ln(k) - ln(x) - 1) ดิฟยากหน่อย เพราะมีพจน์ xx
0 = (k/x)x(ln(k) - ln(x) - 1)
e = k/x
แปลเป็นภาษาชาวบ้านๆ ก็คือ แบ่งให้แต่ละส่วนมีค่าเท่ากับ e นั่นเอง

แต่ในความเป็นจริงนั้น จำนวนจริงทุกตัวไม่ได้หาร e ลงตัว
ตรงนี้ก็ไม่ยากอะไร จาก x = n/e ได้ค่ามาเท่าไหร่ก็ปัดให้ใกล้ค่านั้น
ที่ต้องระวังคือ เมื่อหลังจุดทศนิยมมีค่าประมาณเลข 5 ต้องตรวจสอบให้ดี
เช่น x = 1.48 ปัดลงไม่ได้ เพราะแบ่ง 2 ส่วนแล้วผลคูณมีค่ามากกว่า
ทั้งนี้ก็เพราะว่า ฟังก์ชัน ex ไม่ใช่เส้นตรง จึงแบ่งครึ่งพอดีไม่ได้

เขียนทั้งหมดด้วยความมันส์ ก็หวังว่าท่านผู้อ่านคงจะมันส์ไปด้วยนะครับ
บวกกับแอบหวังเล็กๆ ว่าผู้อ่านจะได้รับความรู้กลับไปบ้าง ซักนิดก็ยังดี เนาะ!
แล้วพบกันใหม่เมื่อไอเดียบรรเจิดอีกรอบ สวัสดีครับ ^^