วันเสาร์ที่ 19 กันยายน พ.ศ. 2558

ความมหัศจรรย์ของคณิตศาสตร์ที่ไม่น่าเบื่อ ค่าπที่ไม่สิ้นสุด

π – กว่าจะได้พาย ก็จนกระทั่งโดนลูกดอกปักที่หัวเข่า

สัญลักษณ์ของพาย (แหล่งภาพ​ – วิกิพีเดีย)

ก่อนหน้านี้ ผมได้เล่าถึงเลขฟีโบนัชชีผ่านเรื่องราวการขยายเผ่าพันธุ์ของกระต่าย ครั้งนี้  ผมเกิดนึกสนุกอยากเล่าเรื่องตัวเลขค่านึงที่มีความโด่งดังและมีประวัติศาสตร์ยาวนานกว่า 4,000 ปี โดยนำท่านชมโปรแกรมท่องเที่ยว  “พายเรือเป็นวงกลม ชมพีระมิด พิชิตปาเป้าที่คาสิโน” แฮๆ … จริงๆก็ไม่ได้เกี่ยวข้องกับการท่องเที่ยวแต่อย่างใด หากแต่ผมเพียงอยากเขียนรำลึกถึง พาย (π) ที่พวกเราเคยร่ำเรียนกันมาเมื่อครั้งยังเยาว์วัย

สมัยที่เรายังเรียนประถมและมัธยม (และแม้แต่ในอุดมศึกษา) เราได้เรียนเรื่องวงกลม เราได้รู้จักสูตรหาพื้นที่วงกลมคือ “พายอาร์กำลังสอง” และสูตรหาเส้นรอบวงคือ “สองพายอาร์” เรามารื้อฟื้นความหลังกันนิดนึงว่า “พาย” คืออะไร และมีความน่าสนใจอย่างไรบ้าง?

คำเตือน ผมไม่ใช่นักคณิตศาสตร์ผู้เชี่ยวชาญ แต่ได้โปรดอ่านต่อเถอะนะ

พาย คือ?

“พายเรือเป็นวงกลม”

ภาพแสดงเส้นรอบวง (circumference) และเส้นผ่าศูนย์กลาง (diameter) ของวงกลมวงหนึ่ง (ภาพจากวิกิพีเดีย)

พาย หรืออักษรกรีกคือ π บางทีก็เขียนว่า pi คือ ค่าคงตัวทางคณิตศาสตร์​ ที่คำนวณได้จากเส้นรอบวงของวงกลมวงหนึ่ง หารด้วยเส้นผ่าศูนย์กลางของวงกลมเดียวกันนี้

ดูภาพวงกลมด้านบนประกอบ – วงกลมวงนี้มีเส้นรอบวงแทนค่าด้วยสัญลักษณ์ C ส่วนเส้นผ่าศูนย์กลางแทนค่าด้วยสัญลักษณ์ d กล่าวได้ว่า

π = C/d

(หมายเหตุ / คือ เครื่องหมายหาร) โดยเป็นข้อเท็จจริงทางธรรมชาติว่า  เส้นรอบวง (ค่า C) มากกว่าเส้นผ่าศูนย์กลาง (ค่า d) ประมาณ 3 เท่าเพียงเล็กน้อย ไม่ว่าจะเป็นวงกลมที่มีเส้นผ่าศูนย์กลางขนาดเล็กใหญ่ขนาดไหนก็ตาม จะเป็นวงกลมเล็กๆเท่าจุดที่ตาแทบมองไม่เห็น หรือแม้วงกลมวงใหญ่ๆกว่าโลกของเรา ข้อเท็จจริงนี้ก็ยังเป็นจริงเสมอ คือ เส้นรอบวงยาวกว่าผ่าศูนย์กลางอยู่ 3 เท่าเพียงเล็กน้อย และ 3 เท่าเพียงเล็กน้อยนี่เอง คือ พาย!

สมัยที่ผมยังเด็ก ผมจำได้ว่าพายมีค่าเท่ากับ 22/7 หรือ 3.14 ซึ่งในความเป็นจริงแล้ว ค่าของพายอธิบายได้ละเอียดกว่า 22/7 และ 3.14 อย่างนับไม่ได้เลย ผมขออนุญาตคัดลอกเอาค่าพายเพียงส่วนหนึ่งจากวิกีพีเดียมาแสดงให้ดูดังนี้

π ≈ 3.1415926535 89793238462643383279 50288419716939937510 58209749445923078164 06286208998628034825 34211706798214808651 32823066470938446095 50582231725359408128 48111745028410270193 85211055596446229489 54930381964428810975 66593344612847564823 37867831652712019091 45648566923460348610 45432664821339360726 02491412737245870066 06315588174881520920 96282925409171536436 78925903600113305305 48820466521384146951 94151160943305727036 57595919530921861173 81932611793105118548

(หมายเหตุ – เครื่องหมาย ≈ บ่งบอกว่าเป็นการประมาณค่า)

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

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

ดังนั้น พายเท่ากับ 22/7 จึงไม่ถูกต้อง (อีกครั้งว่าจำนวนอตรรกยะไม่ใช่เศษส่วนที่เกิดจากจำนวนเต็มหารกัน) หากแต่ 22/7 เป็นจำนวนตรรกยะ (เช่น เศษส่วน) ที่ใกล้เคียงกับค่าของจำนวนอตรรกยะของพาย อย่างไรก็ดี 22/7 ยังเป็นจำนวนตรรกยะที่มีค่าสูงกว่าพายอยู่ดี เพราะ 22/7 ≈ 3.143 ซึ่งใกล้เคียงพายแค่ 2 ตำแหน่งหลังจุดทศนิยม

นอกจาก 22/7 แล้ว ยังมีจำนวนตรรกยะจำนวนอื่นที่ใกล้เคียงค่าพายกว่า 22/7 เช่น 333/106355/11352,163/16,604, และ 103,993/33,102(อ้างอิงจากวิกิพีเดีย) เป็นต้น หากแต่  22/7 แสดงได้ด้วยจำนวนเต็มที่ทั้งเศษและส่วนมีค่าน้อยที่สุดและใกล้เคียงกับพาย (และคงง่ายต่อการจดจำ) ค่า 22/7 จึงถูกนำไปใช้แทนพายอย่างกว้างขวางถึงทุกวันนี้

ก่อนที่ผมจะกล่าวถึงพายกันต่อ ผมขอเสนอโปรแกรมท่องเที่ยวย้อนเวลาไปหาอดีตประมาณ 2,600 กว่าปีก่อนคริสตกาล

พีระมิด (เกี่ยวกับอะไรกับพาย?)

“ชมพีระมิด”

ภาพมหาพีระมิดแห่งกีซา (แหล่งภาพ – วิกิพีเดีย)

หากเราย้อนอดีตกลับไปประมาณ 2,600 ปีก่อนคริสตกาล ชาวอียิปต์ได้สร้างพีระมิดขนาดใหญ่ในนามว่า พีระมิดคูฟู หรือเป็นที่รู้จักกันในชื่อ มหาพีระมิดแห่งกีซา  จนถึงวันนี้ พีระมิดคูฟูเป็นพีระมิดที่ใหญ่และเก่าแก่ที่สุดใน “หมู่พีระมิดทั้งสามแห่งกีซา” (Giza Necropolis) สร้างขึ้นในสมัยของฟาโรห์คูฟู แห่งราชวงศ์ที่ 4 ของอียิปต์ ซึ่งใช้เป็นสถานที่รักษาพระศพเพื่อรอการฟื้นคืนชีพตามความเชื่อของชาวอียิปต์โบราณ

ความน่าสนใจของพีระมิดคูฟู คือ พีระมิดแห่งนี้ได้รับการยกย่องว่าเป็นหนึ่งในเจ็ดสิ่งมหัศจรรย์ของโลกยุคโบราณ และยังเป็นสิ่งมหัศจรรย์ยุคโบราณเพียงหนึ่งเดียวเท่านั้นที่ยังคงสภาพอยู่มาถึงปัจจุบันนี้ นอกจากนี้แล้ว พีระมิดคูฟูยังมีความข้องเกี่ยวข้องกับพายอีกด้วย!

จะด้วยความจงใจของผู้สร้างหรือผู้ออกแบบพีระมิดคูฟู หรือจะด้วยความบังเอิญก็ตามแต่ มีการค้นพบเรื่องน่าพิศวงว่า ความยาวรอบฐานของพีระมิดคูฟู หารด้วยความสูงของพีระมิดคูฟู มีค่าโดยประมาณเท่ากับ 2 คูณกับค่าพาย!

ในสมัยโน้น ชาวอียิปต์ใช้หน่วยวัดความยาวที่เรียกว่า คิวบิต (cubit) โดยพีระมิดคูฟูมีความยาวรอบฐานทั้งสี่ด้านเท่ากับ 1,760 คิวบิต และความสูงเท่ากับ 280 คิวบิต เมื่อหารเลขทั้งสองแล้วจะได้ค่า 1,760/280 ≈ 6.29 ≈ 2 π  พอเอาเลข 6.29 หารสองแล้วจะได้ 6.29/2 = 3.145   จะเห็นว่ามีความคลาดเคลื่อนจากค่าพายอยู่ แต่ก็ถือว่าใกล้เคียงค่าพาย โดยเลขทศนิยมของพายที่พิจารณาเพียง 2 ตำแหน่งมีค่าเท่ากับ 3.14 นั่นเอง

เกมปาเป้าก็หาค่าพายได้

“พิชิตปาเป้าที่คาสิโน”

มีนักคณิตศาสตร์คิดค้นวิธีการประมาณค่าพายให้ได้ทศนิยมขนาดยาวและแม่นยำให้มากที่สุด แต่ผมจะไม่กล่าวถึงวิธีการ(ยุ่งยาก)เหล่านั้น ผมจะขอพูดถึงวิธีหนึ่ง ที่พวกเราสามารถใช้คอมพิวเตอร์บ้านๆมาใช้ประมาณค่าพายได้ วิธีง่ายๆดังกล่าวนี้มีชื่อว่า มอนติ คาร์โล (Monte Carlo)

ภาพบ่อนคาสิโน ที่เมืองมอนติคาร์โล (หรือมอนเตคาร์โล) (แหล่งภาพ – วิกิพีเดีย)

มอนติ คาร์โล เป็นเขตที่ใหญ่ที่สุดในโมนาโค จัดว่าเป็นแหล่งท่องเที่ยวที่สวย และผู้คนที่นั่นร่ำรวยมากๆ เมื่อปี ค.ศ. 2007 ผมเคยไปเที่ยวมอนติ คาร์โล โดยส่วนตัวผมรู้สึกว่าโมนาโคนี้มั่งคั่ง มีบ่อนคาสิโนที่มีชื่อเสียง ผู้คนขับรถหรูหราราคาหลายสิบล้านจนเหมือนว่าหาซื้อกันได้ง่าย อ้าว … นอกเรื่องจนได้

วิธีการที่สามารถประมาณค่าพายได้ก็มีชื่อว่า “มอนติ คาร์โล” เป็นวิธีที่นิยมเอาไปใช้ในการจำลองเหตุการณ์ (หรือ simulation) เพื่อใช้ในการทดลองและวิเคราะห์ปัญหาอะไรสักอย่าง วิธีของ มอนติ คาร์โล ง่ายมากและมีประสิทธิภาพที่พอรับได้ ผมจะไม่ลงรายละเอียดวิธีมอนติ คาร์โลมากนัก แต่ขอสรุปขั้นตอนสั้นๆของวิธีนี้ คือ 1. สุ่มค่าหลายๆค่า 2. ประเมินค่าแต่ละค่าที่สุ่ม 3. รวบรวมผลจากค่าที่ประเมินได้เพื่อสรุปผลลัพธ์สุดท้าย (สั้นไปไหม?)


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

ในที่นี้ เราจะมาจำลองเหตุการณ์เกมปาเป้ากัน! โดยเกมปาเป้านี่แหละสามารถใช้ในการหาค่าของพายได้ด้วย

ผมขอสรุปขั้นตอนจำลองเหตุการณ์ปาเป้าเพื่อประมาณค่าพายไว้ดังนี้

  1. ให้จินตนาการว่า เรามีเป้าวงกลม (เหมือนในภาพด้านบน)
  2. เรามีลูกดอกลูกหนึ่งที่จะเอามาปาเป้า และเราจะใช้ลูกดอกดอกนี้ปาเป้าซ้ำกันหลายๆครั้ง แต่ขอให้กำหนดก่อนว่าเราจะปาเป้าทั้งหมดกี่ครั้ง เช่น 10,000 ครั้ง หรือทั้งหมด N ครั้งก็ว่ากันไป (โดย N เป็นจำนวนเต็มบวกที่มีค่ามากๆ)
  3. ให้ปาลูกดอกไปที่เป้า เมื่อลูกดอกโดนเป้า(หรือไม่โดน) ให้เราปาลูกดอกจนครบ N ครั้ง ก็ไม่ต้องจดคะแนนจดแต้มอะไรทั้งสิ้นว่าโดนเป้าแล้วได้แต้มเท่าไหร่ ให้จดแค่ว่าปาลูกดอกเข้าเป้าวงกลมไปแล้วกี่ดอก
  4. เมื่อปาลูกดอกจนหนำใจและครบ N ครั้งตามที่ตั้งใจเอาไว้ ก็ให้ทำผลสรุปว่ามีลูกดอกทั้งหมดกี่ดอกที่โดนเป้าวงกลม

ทีนี้เราสามารถคำนวณหาค่าพาย (π) ได้แล้ว โดยใช้สูตรดังต่อไปนี้

π = 4 คูณด้วย [จำนวนครั้งที่ลูกดอกทั้งหมดที่โดนเป้าวงกลม] หารด้วย [จำนวนการปาเป้าทั้งหมด หรือ N]

ยิ่งค่า N มีค่าใหญ่เท่าไหร่ ก็ยิ่งมีโอกาสประมาณค่าพายได้มากขึ้นเท่านั้น
(ที่มาว่า ทำไมปาเป้าจึงใช้ประมาณค่าพายได้กล่าวไว้ในช่วงท้าย)

เขียนโปรแกรมปาเป้ากันเถอะ

เรามาเขียนโปรแกรมคอมพิวเตอร์เพื่อจำลองเหตุการณ์ปาเป้ากันเถอะ

อืม … ถึงส่วนนี้ผมพยายามคิดหาวิธีว่าผมจะทำให้หลายๆท่านเขียนโปรแกรมปาเป้ายังไงดี ยิ่งถ้าหากท่านที่ไม่เคยเขียนโปรแกรมมาก่อน คงอธิบายในส่วนนี้ลำบาก จะเอาภาษาคอมพิวเตอร์ตัวไหนดีมาอธิบาย (จาวา ซี ไพธอน ??)  อะ … เอาอย่างนี้แล้วกัน ผมขอสมมติแล้วกันว่า ทุกท่านใช้ Microsoft Excel เป็น ถ้าไม่มี Microsoft Excel ก็สามารถใช้โปรแกรมที่เหมือน Excel (แต่ฟรี) นั่นคือ OpenOffice.org แล้วกัน และถ้าคุณมีอีเมลของ gmail จะลองใช้ Google Docs ก็ได้ (ฟรีเช่นกัน)

คำถามต่อมาคือ เราจะแปลงเหตุการณ์การปาเป้าไปเป็นขั้นตอนวิธีที่คอมพิวเตอร์เข้าใจได้อย่างไรดี นั่นก็คือการตอบคำถามว่า เราจะไปตั้งโปรแกรมใน Excel  อย่างไรนั่นเอง
เรามาจำลองเป้าวงกลมกันเถอะ

ภาพจำลองการปาเป้าวงกลม (แหล่งภาพ – ฝีมือวาดแย่ๆของผมเอง วาดโดย Google Docs)

  • จำลองว่าเรามีเป้าวงกลมในคอมพิวเตอร์ (เอ๊ะ … ทำยังไง?) ขอให้ดูภาพประกอบด้านบนนี้ไปด้วยนะครับ โดยเป้าของเราคือ วงกลมสีเขียวที่ใส่กรอบสี่เหลี่ยมจตุรัสขนาด 2 ตารางฟุต (สี่เหลี่ยมจตุรัสมีความยาวของด้านเท่ากันทุกด้าน) โดยเป้าวงกลมจุอยู่ในวงกลมได้พอดิบพอดี ดังนั้น เป้าวงกลมของเราจึงมีเส้นผ่าศูนย์กลางขนาด 2 ฟุต หรือมีรัศมียาว 1 ฟุตนั่นเอง (หมายเหตุ: ในความเป็นจริง ความยาวของด้านสี่เหลี่ยมหรือรัศวงกลมจะมีขนาดเท่าไรก็ได้ แต่เพื่อความง่ายในการอธิบายจึงขอกำหนดตายตัวไว้เช่นนี้)
  • จุดสีแดงที่เห็นในภาพ เป็นการจำลองลูกดอกที่ปักลงเป้าวงกลม หรืออาจจะออกนอกเป้าวงกลมก็ได้
  • สมมติว่า เราปาลูกดอกเข้ากรอบสี่เหลี่ยมทุกๆครั้ง โดยจุดสีแดงที่อยู่ในวงกลมก็คือ ตำแหน่งลูกดอกที่เข้าเป้า ส่วนจุดสีแดงที่อยู่พื้นที่สีฟ้าก็คือ ตำแหน่งลูกดอกที่ออกนอกเป้า
  • พูดถึงเรื่องระบุพิกัดของลูกดอกว่าปักลงตรงตำแหน่งไหน เราจะระบุอย่างไรดี? ตอบ ในที่นี้ เราจะใช้ระบบพิกัดของรูป 2 มิติ ด้วยการระบุพิกัดด้วยคู่อันดับ (x, y) และกำหนดให้จุดศูนย์ของวงกลม คือ (0,0)
  • แน่นอนว่าถ้าเราปาเป้าไปที่สี่เหลี่ยมจตุรัสด้านบนนี้ พิกัดคู่อันดับที่ได้มาทั้ง x และ y จะมีค่าตั้งแต่ -1 ถึง 1 เท่านั้น
  • เมื่อได้คู่อันดับ (x, y) ของลูกดอก แล้วเราจะรู้ได้อย่างไรว่าลูกดอกที่ปาไป โดนเป้าหรือว่าออกนอกเป้า? ตอบ เราสามารถใช้ระบบพิกัดคาร์ทีเซียน (Cartesian coordinate system) คือ x2 + y2 = c2   โดย c คือพิกัด ส่วน x กับ y ก็คือ คู่อันดับ (x, y) ของลูกดอกที่ปักเข้ากรอบพื้นที่สี่เหลี่ยม (ซึ่งอาจจะเข้าเป้าหรือหลุดออกนอกเป้าก็ได้) ดังนั้น เมื่อเรารู้ว่าลูกดอกไปปักที่ x กับ y ตรงไหน ก็จัดการยกกำลังสองให้กับ x และ y แล้วนำผลที่ได้มาบวกกัน (หรือ x2 + y2) หลังจากนั้น ให้เราถอดรากที่สองของ  x2 +  yเราก็จะได้พิกัดของลูกดอกหรือค่า c ซึ่งเป็นพิกัดคาร์ทีเซียน
  • เมื่อเราได้พิกัด(คาร์ทีเซียน)ของลูกดอก เราก็ทราบได้แล้วว่า เราปาลูกดอกเข้าเป้าหรือไม่ โดยถ้าพิกัดน้อยกว่า 1 แปลว่า ลูกดอกเข้าเป้าวงกลม ถ้าหากพิกัดมากกว่าหรือเท่ากับ 1 แปลว่าลูกดอกออกนอกเป้าวงกลม
ตั้งโปรแกรมใน Excel เพื่อจำลองการปาเป้า
ขั้นตอนนี้คือการเปลี่ยนวิธีการที่อธิบายได้ด้วยภาษาคนไปเป็นภาษาที่คอมพิวเตอร์เข้าใจ ในทีนี้ ผมเลือก Excel (หรือ OpenOffice.org) สำหรับเป็นโปรแกรมในการจำลองการปาเป้า โดยเราต้องคิดวิธีที่จะทำให้โปรแกรม Excel เข้าใจวิธีการจำลองการปาเป้า ซึ่งวิธีมีดังนี้
  • เพื่อความสะดวก ผมได้เตรียมไฟล์ Excel ที่ตั้งโปรแกรมจำลองการปาเป้าไว้ให้แล้ว สามารถดาวน์โหลดได้ที่นี่ หรือท่านสามารถเปิดผ่านโปรแกรม Google Docs ได้โดยคลิ้กตรงนี้
  • ในไฟล์ Excel นี้ ผมจำลองการปาลูกดอกทั้งหมด 10,000 ครั้ง โดยตัวเลขที่อยู่ในคอลัมน์ชื่อ X กับ Y ก็คือ จุดคู่อันดับ (X, Y) ของลูกดอก  โดยค่าคู่อันดับ (X, Y) ของตำแหน่งการปาลูกดอก ดังนั้น จะมีคู่อันดับ (X, Y) ตั้งแต่แถวที่ 2 ถึงแถวที่ 10,001 (เพราะไม่นับแถวที่ 1 ซึ่งเป็นชื่อคอลัมน์) โดยแต่ละแถวแทนการปาลูกดอก 1 ครั้ง
  • Excel มีฟังก์ชันชื่อ RAND() ซึ่งเป็นฟังก์ชันสร้างเลขสุ่ม (random number) ซึ่งเป็นค่าสุ่มในช่วง [0, 1) หรือมีค่าเท่ากับหรือมากกว่า 0 และน้อยกว่า 1 ดังนั้นค่าที่เกิดขึ้นจึงเป็นเลขทศนิยมที่มีค่าตั้งแต่เลขศูนย์จนถึงเลขทศนิยมที่ใกล้เคียงกับ 1
  • อย่างที่ผมได้กล่าวไปก่อนหน้านี้ว่า สี่เหลี่ยมจตุรัสที่เห็นด้านบนนี้ ใช้คู่อันดับ (X, Y) ในการอ้างอิงตำแหน่ง ที่ X และ Y มีค่าได้ตั้งแต่ -1 ถึง 1 ดังนั้น เพื่อให้การใช้ฟังก์ชัน RAND() สร้างค่าให้อยู่ในช่วง -1 ถึง 1 ได้นั้น ผมใช้สูตรว่า RAND() * 2 – 1 โดยเราจะใช้สูตรนี้ในคอลัมน์ของ X กับ Y
  • คอลัมน์ที่ 3 มีชื่อคอลัมน์ว่า Distance คือ พิกัดคาร์ทิเซียนของลูกดอก หาได้จากการหารากที่สองของ X2 + Y2 ซึ่งใน Excel ใช้สูตร SQRT(X^2+ Y^2)
  • คำถามคือ ต้องกรอก (X, Y) ด้วยมือจนครบหมื่นค่าเลยหรือไม่? คำตอบคือ แน่นอน! ว่าผมไม่กรอกด้วยมือ (มันเหนื่อย) เราสามารถกรอกสูตรลงไปแค่แถวที่ 2 จากนั้นก็คัดลอกสูตรแล้ววางสูตรไปตั้งแต่แถวที่ 3 จนถึงแถวที่ 10,001 เราก็จะได้การปาเป้า 10,000 ครั้งมาอย่างง่ายดาย
  • ถึงเวลารวบรวมผลการปาเป้าแล้วทีนี้ – กำหนดให้คอลัมน์ที่ 5 (คอลัมน์ E)  คือ จำนวนครั้งที่ลูกดอกเข้าเป้าวงกลม เราสามารถ COUNTIF([ช่วงข้อมูล], [เงื่อนไข]) สำหรับนับลูกดอกที่เข้าเป้า โดยกำหนด [ช่วงข้อมูล] ด้วยค่าในคอลัมน์พิกัด นั่นคือ C2:C10001 และกำหนด [เงื่อนไข] ว่า “< 1” ซึ่งหมายถึงว่า นับว่ามีพิกัดกี่พิกัดที่มีค่าน้อยกว่า 1 หรือมีจำนวนครั้งที่ลูกดอกเข้าเป้ากี่ครั้งนั่นเอง โดยค่าที่ได้ให้เก็บไว้ในช่อง E2
  • ถึงเวลาสรุปผลประมาณค่าพายแล้วทีนี้ –  กำหนดให้คอลัมน์ที่ 6 (คอลัมน์ F)  คือ ค่าพายโดยประมาณ ซึ่งคำนวณได้จากสูตร π = 4 คูณด้วย [จำนวนครั้งที่ลูกดอกเข้าเป้าวงกลม] หารด้วย [จำนวนครั้งที่ปาเป้า] หรือแปลงเป็นสูตรใน Excel คือ 4 * E2 / 10000 ทีนี้เราก็ได้ค่าพายแล้ว
  • คอลัมน์ที่ 7 กับ 8 (คอลัมน์ G และ H) เป็นของแถม คือ เราจะลองเทียบดูว่าค่าพายที่เราประมาณได้มีความคลาดเคลื่อนจากค่าพายที่ Excel เตรียมไว้ให้มากน้อยเพียงใด โดยช่อง G2 เราใช้สูตร PI() สำหรับค่าพาย ส่วนช่อง H2 เป็นการคำนวณความคลาดเคลื่อนในการประมาณค่าออกมาเป็น % ด้วยสูตร =ABS(F2-G2) * 100/ G2 ยิ่งค่าในช่อง H2 มีค่าน้อยเท่าไหรก็ถือว่าประมาณค่าได้แม่นยำมากเท่านั้น
ถือว่าเป็นอันเสร็จสิ้นสำหรับการจำลองการปาเป้าด้วยวิธีมอนติ คาร์โล ผ่านโปรแกรม Excel หากท่านอยากจำลองการปาเป้า 10,000 ครั้งให้ได้คู่อันดับ (X, Y) ชุดใหม่ สามารถทำได้ที่โปรแกรม Excel ด้วยการกดปุ่ม Ctrl + R (กดปุ่ม Ctrl กับปุ่ม R พร้อมกัน) จะลองเพิ่มหรือลดจำนวนการปาเป้าดูก็ได้ แล้วจะสังเกตได้ว่า ยิ่งเพิ่มจำนวนการปาเป้าเยอะขึ้นก็ยิ่งประมาณค่าพายได้ใกล้เคียงมากขึ้นเช่นกัน
หากสงสัยว่า ปาเป้าไปหาค่าพายได้อย่างไร?
ให้พิจารณาภาพเป้าวงกลมที่อยู่ในสี่เหลี่ยมจตุรัสด้านบนนี่แหละ โดยขอเปลี่ยนการสมมติความยาวของรัศมีวงกลมนิดหน่อยว่า วงกลมวงนี้มีรัศมีเท่ากับ R  โดยพื้นที่วงกลมวงนี้คือ πR2 ส่วนสี่เหลี่ยมจตุรัส(ที่ด้านมียาว 2R) มีพื้นที่คือ 2R​ คูณ 2R = 4R2
เมื่อเราเอาพื้นที่วงกลมหารพื้นที่สี่เหลี่ยมก็จะได้  πRหาร 4R= π/4 หรือสรุปออกมาได้ว่า
(พื้นที่วงกลม) / (พื้นที่สี่เหลี่ยม) = π/4
เมื่อเอา 4 ไปคูณสมการนี้ แล้วกลับข้างให้ π มาอยู่ซ้ายมือ จะได้ว่า
 π = 4 x (พื้นที่วงกลม) / (พื้นที่สี่เหลี่ยม)
สมมติว่า พื้นที่สี่เหลี่ยมนี้ว่างเปล่า (ยังไม่มีลูกดอกปักอยู่) หากว่ามีการปาลูกดอก(แบบสุ่มปา)จำนวนมากมุ่งไปที่พื้นที่สี่เหลี่ยมจตุรัส ย่อมมีโอกาสที่ลูกดอกบางลูกไม่ได้ตกไปอยู่ในพื้นที่ของวงกลม และการปาของลูกดอกลงไปยังพื้นที่ของรูปสี่เหลี่ยมและวงกลม ก็เสมือนเป็นการประมาณค่าของพื้นที่ของรูปทั้งสองด้วยนั่นเอง เปรียบเทียบได้กับการแต้มจุดแดงบนพื้นที่สีขาวๆที่ว่างเปล่าให้เกิดสี ยิ่งแต้มสีแดงได้เต็มพื้นที่มากเท่าไหร่ ก็เทียบได้กับการประมาณค่าของพื้นที่ให้ใกล้เคียงมากขึ้นเท่านั้น
จึงเป็นที่มาว่าทำไม π = 4 คูณด้วย [จำนวนครั้งที่ลูกดอกโดนเป้าวงกลม หรือครั้งที่ตกลงไปในพื้นที่วงกลม] หารด้วย [จำนวนครั้งที่ของการปาลูกดอก หรือจำนวนครั้งที่ลูกดอกตกลงไปในพื้นที่สี่เหลี่ยมจตุรัส]
กว่าจะได้พาย ก็จนกระทั่งโดนลูกดอกปักที่หัวเข่า :)credit: https://javaboom.wordpress.com/2012/02/07/pi_arrow/



ไม่มีความคิดเห็น:

แสดงความคิดเห็น