Site hosted by Angelfire.com: Build your free website today!


โปรแกรมจัดวงเล็บให้ a + b - c / d * e
และวิเคราะห์โจทย์บวกลบคูณหาร


คำถาม : ชุดตัวเลข 1, 2, 3, 4, 5 เครื่องหมาย +, -, x, / และวงเล็บ จงหาวิธีคำนวณที่จะทำให้ได้คำตอบเป็น 19, 20, 22, 26, 28, 31 และ 34 โดยต้องใช้ตัวเลขและเครื่องหมายทุกตัว แต่ให้ใช้ได้เพียงครั้งเดียว และใช้วงเล็บได้ไม่จำกัดจำนวน ห้ามใช้เครื่องหมายยกกำลังหรือฟังก์ชั่นทางคณิตศาสตร์ใด ๆ

จากกระทู้ X258695 ผมได้นำเสนอวิธีจัดวงเล็บโดยเขียนโปรแกรมใน VBA6.0 ของ EXCEL2000 เพื่อหาคำตอบ จากการใช้เครื่องหมาย +, -, x, / เพียงครั้งเดียว กับตัวเลข 1,2,3,4,5 ซึ่งจากโจทย์ ให้ใช้ตัวเลขแต่ละตัวได้เพียงครั้งเดียว เพื่อคำนวณหาคำตอบให้ได้ 29 ซึ่งเพื่อนหลายท่านได้พยายาม ค้นหาคำตอบ บางคนถึงขั้นนอนไม่หลับทีเดียว ท้ายที่สุดไม่มีใครหาคำตอบได้ตามเงื่อนไขโจทย์เลย (ดูกระทู้ 2585168) การออกแบบโปรแกรมเพื่อจัดเรียงตัวเลขและเครื่องหมายให้อยู่ในรูป N1 S1 N2 S2 N3 S3 N4 S4 N5 (เมื่อ N แทนตัวเลข และ S แทนเครื่องหมาย) นั้นไม่ยากครับ เราทำได้โดยจัด Loop เครื่องหมาย 4 ชั้น และซ้อนด้วย Loop ตัวเลข อีก 5 ชั้น ก็จะได้รูปแบบที่เป็นไปได้ทั้งหมด (4C1)(3C1)(2C1)(1C1) = 4 x 3 x 2 x 1 = 24 แบบ สำหรับ Loop เครื่องหมาย ส่วนรูปแบบที่เป็นไปได้ทั้งหมดสำหรับ Loop ตัวเลข ก็ขึ้นอยู่กับกลุ่มตัวเลขที่มีอยู่ ถ้ามีตัวเลขอยู่ 5 ตัว (1,2,3,4,5) รูปแบบการจัดตัวเลขที่เป็นไปได้ทั้งหมดก็คือ (5C1)(4C1)(3C1)(2C1)(1C1) = 5 x 4 x 3 x 2 x 1 = 120 แบบ (ถ้ามี 9 ตัว อย่าง 1,2,3,4,5,6,7,8,9 รูปแบบของการจัดตัวเลขก็จะเป็น (9C1)(8C1)(7C1)(6C1)(5C1) = 9 x 8 x 7 x 6 x 5 = 15,120 แบบ) เมื่อรวมรูปแบบ Loop เครื่องหมาย และ Loop ตัวเลขใน กรณีที่มีตัวเลขให้เลือก 5 ตัวเข้าด้วยกัน ก็จะมีจำนวนรูปแบบทั้งหมด 120 x 24 = 2,880 แบบ (ในขณะที่ถ้ามีตัวเลขให้เลือก 9 ตัว จะมีจำนวนรูปแบบทั้งหมด 15,120 x 24 = 362,880 รูปแบบครับ)

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

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

1.1 กลุ่มชั้นที่ 1 ที่เลือกสมาชิก 2 ตัวจาก 5 ตัวมาเข้าวงเล็บ มีได้ 4 แบบ (คิดให้ดี และตัดตัวเลือกที่เป็นไปไม่ได้้ออก)
1.2 กลุ่มชั้นที่ 1 ที่เลือกสมาชิก 3 ตัวจาก 5 ตัวมาเข้าวงเล็บ มีได้ 3 แบบ
1.3 กลุ่มชั้นที่ 1 ที่เลือกสมาชิก 4 ตัวจาก 5 ตัวมาเข้าวงเล็บ มีได้ 2 แบบ
รวมรูปแบบของการแบ่งกลุ่มชั้นที่ 1 ได้ 4 + 3 + 2 = 9 แบบ

2.1 กลุ่มชั้นที่ 2 จากกรณี 1.1 ตอนนี้เราเหลือสมาชิก 4 ตัวคือ กลุ่มวงเล็บ 1 กลุ่ม และ ตัวเลขโดดอีก 3 ตัว เลือกสมาชิก 2 ตัวจาก 4 มาเข้าวงเล็บ มีได้ 3 แบบ แต่เนื่องจากในกรณี 1.1 เรามีกรณีเช่นนี้ 4 แบบ ดังนั้น รูปแบบทั้งหมดคือ 4 x 3 = 12 แบบ (2.1.1), และเราก็ยังเลือกสมาชิก 3 ตัวจาก 4 มาเข้าวงเล็บได้ด้วย ซึ่งในกรณีนี้มีได้ 2 แบบ แต่เนื่องจากกรณีที่ 1.1 เรามีกรณีเช่นนี้ 4 แบบ ดังนั้นรูปแบบทั้งหมดคือ 4 x 2 = 8 แบบ (2.1.2) ยอดรวมสำหรับกรณี 2.1 จึงเป็น 12 + 8 = 20 แบบ
2.2 กลุ่มชั้นที่ 2 จากกรณี 1.2 ตอนนี้เหลือสมาชิก 3 ตัวคือ กลุ่มวงเล็บ 1 กลุ่ม (ที่มีสมาชิก 3 ตัว) และตัว เลขโดดอีก 2 ตัว, เราเลือกสมาชิก 2 ตัวจาก 3 มาเข้าวงเล็บ ซึ่งมีได้ 2 แบบ แต่เนื่องจากกรณีที่ 1.2 เรามี กรณีเช่นนี้ 3 แบบ ดังนั้นรูปแบบทั้งหมดคือ 2 x 3 = 6 แบบ
รวมรูปแบบของการแบ่งกลุ่มชั้นที่ 2 ได้ 20 + 6 = 26 แบบ

3.1 กลุ่มชั้นที่ 3 จากกรณี 2.1.1 ตอนนี้เหลือสมาชิก 3 ตัว ซึ่งอาจอยู่ในรูปกลุ่มวงเล็บหรือตัวเลขโดด เราเลือกสมาชิก 2 ตัว จาก 3 มาเข้าวงเล็บ ซึ่งมีได้ 2 แบบ แต่เนื่องจากกรณีที่ 2.1.2 เรามีกรณีเช่นนี้ 12 แบบ ดังนั้นรูปแบบทั้งหมดของการแบ่งกลุ่มชั้นที่ 3 คือ 2 x 12 = 24 แบบ

รูปแบบของการแบ่งวงเล็บทั้งสิ้นจากทั้ง 3 กลุ่มจึงเป็น 9 + 26 + 24 = 59 แบบ เมื่อรวมกับกรณีที่ไม่ได้แบ่งวงเล็บอีก 1 แบบ รวมได้เป็นกรณีทั้งสิ้น 60 แบบ ดังนี้

01. (1+2)-3*4/5
02. ((1+2)-3)*4/5
03. (((1+2)-3)*4)/5
04. ((1+2)-3)*(4/5)
05. (1+2)-(3*4)/5
06. ((1+2)-(3*4))/5
07. (1+2)-((3*4)/5)
08. (1+2)-3*(4/5)
09. ((1+2)-3)*(4/5)
10. (1+2)-(3*(4/5))
11. ((1+2)-3*4)/5
12. (1+2)-(3*4/5)
13. 1+(2-3)*4/5
14. (1+(2-3))*4/5
15. ((1+(2-3))*4)/5
16. (1+(2-3))*(4/5)
17. 1+((2-3)*4)/5
18. (1+((2-3)*4))/5
19. 1+(((2-3)*4)/5)
20. 1+(2-3)*(4/5)
21. (1+(2-3))*(4/5)
22. 1+((2-3)*(4/5))
23. (1+(2-3)*4)/5
24. 1+((2-3)*4/5)
25. 1+2-(3*4)/5
26. (1+2)-(3*4)/5
27. ((1+2)-(3*4))/5
28. (1+2)-((3*4)/5)
29. 1+(2-(3*4))/5
30. (1+(2-(3*4)))/5
31. 1+((2-(3*4))/5)
32. 1+2-((3*4)/5)
33. (1+2)-((3*4)/5)
34. 1+(2-((3*4)/5))
35. (1+2-(3*4))/5
36. 1+(2-(3*4)/5)
37. 1+2-3*(4/5)
38. (1+2)-3*(4/5)
39. ((1+2)-3)*(4/5)
40. (1+2)-(3*(4/5))
41. 1+(2-3)*(4/5)
42. (1+(2-3))*(4/5)
43. 1+((2-3)*(4/5))
44. 1+2-(3*(4/5))
45. (1+2)-(3*(4/5))
46. 1+(2-(3*(4/5)))
47. (1+2-3)*(4/5)
48. 1+(2-3*(4/5))
49. (1+2-3)*4/5
50. ((1+2-3)*4)/5
51. (1+2-3)*(4/5)
52. 1+(2-3*4)/5
53. (1+(2-3*4))/5
54. 1+((2-3*4)/5)
55. 1+2-(3*4/5)
56. (1+2)-(3*4/5)
57. 1+(2-(3*4/5))
58. (1+2-3*4)/5
59. 1+(2-3*4/5)
60. 1+2-3*4/5

จากทั้ง 60 รูปแบบนี้ เราจะเห็นว่ายังมีกรณีที่ซ้ำกันอยู่ (เช่น รูปแบบ 47 กับ 51) เราจึงต้องเขียน algorithm ขจัดรูปแบบที่ซ้ำซ้อนนี้ออกไป ดังนี้ครับ

เมื่อขจัดรูปแบบวงเล็บที่ซ้ำซ้อนกันไปแล้ว จะเหลือรูปแบบที่เป็นไปได้ทั้งสิ้น 45 รูปแบบดังนี้

01. (1+2)-3*4/5
02. ((1+2)-3)*4/5
03. (((1+2)-3)*4)/5
04. ((1+2)-3)*(4/5)
05. (1+2)-(3*4)/5
06. ((1+2)-(3*4))/5
07. (1+2)-((3*4)/5)
08. (1+2)-3*(4/5)
09. (1+2)-(3*(4/5))
10. ((1+2)-3*4)/5
11. (1+2)-(3*4/5)
12. 1+(2-3)*4/5
13. (1+(2-3))*4/5
14. ((1+(2-3))*4)/5
15. (1+(2-3))*(4/5)
16. 1+((2-3)*4)/5
17. (1+((2-3)*4))/5
18. 1+(((2-3)*4)/5)
19. 1+(2-3)*(4/5)
20. 1+((2-3)*(4/5))
21. (1+(2-3)*4)/5
22. 1+((2-3)*4/5)
23. 1+2-(3*4)/5
24. 1+(2-(3*4))/5
25. (1+(2-(3*4)))/5
26. 1+((2-(3*4))/5)
27. 1+2-((3*4)/5)
28. 1+(2-((3*4)/5))
29. (1+2-(3*4))/5
30. 1+(2-(3*4)/5)
31. 1+2-3*(4/5)
32. 1+2-(3*(4/5))
33. 1+(2-(3*(4/5)))
34. (1+2-3)*(4/5)
35. 1+(2-3*(4/5))
36. (1+2-3)*4/5
37. ((1+2-3)*4)/5
38. 1+(2-3*4)/5
39. (1+(2-3*4))/5
40. 1+((2-3*4)/5)
41. 1+2-(3*4/5)
42. 1+(2-(3*4/5))
43. (1+2-3*4)/5
44. 1+(2-3*4/5)
45. 1+2-3*4/5

ในกรณีเลือกตัวเลข 5 ตัว จากชุดตัวเลข 1-5, จะมีรูปแบบการคำนวณที่เป็นไปได้ทั้งหมด 45 x 2,880 = 129,600 แบบ

ในกรณีเลือกตัวเลข 5 ตัว จากชุดตัวเลข 1-9, จะมีรูปแบบการคำนวณที่เป็นไปได้ทั้งหมด 45 x 362,880 = 16,329,600 แบบ

เมื่อถึงขั้นนี้เราก็พร้อมที่จะทดสอบว่าในกรณีเลือกตัวเลข 5 ตัว จากชุดตัวเลข 1-5 จะได้คำตอบเป็น 29 บ้างหรือไม่ ผมประยุกต์ใช้ dialog box โปรแกรมแก้ปัญหาของโจเซฟัสซึ่งได้นำเสนอไปในกระทู้ก่อน ๆ เพื่อแสดง percent progression, เวลาที่ใช้ไป และเวลาที่คาดว่าจะแล้วเสร็จ ซึ่งผลการรันโปรแกรม PMMD (Plus-Minus-Multiply-Division) ซึ่งผมออกแบบขึ้นปรากฏว่าไม่มีคำตอบครับ

ในกรณีที่คำตอบเป็น 30, โปรแกรมจะแสดงผลดังนี้ครับ

เมื่อโปรแกรมรันเสร็จ เราสามารถใช้ mouse เลือกช่องแสดงผลทางด้านขวามือ เพื่อ copy ได้ครับ นี่เป็น ผลการรันทั้งหมดเพื่อให้ได้คำตอบเป็น 30

Probability of finding solution(s) = 0.10%
Total number of solution(s) = 136

Use 1 to 5, No. 122295 : (4/1*(5+3))-2 = 30, at 4.16 min
Use 1 to 5, No. 122289 : 4/1*(5+3)-2 = 30, at 4.16 min
Use 1 to 5, No. 122272 : ((4/1)*(5+3))-2 = 30, at 4.15 min
Use 1 to 5, No. 122271 : (4/1)*(5+3)-2 = 30, at 4.15 min
Use 1 to 5, No. 122205 : (4/1*(3+5))-2 = 30, at 4.15 min
Use 1 to 5, No. 122199 : 4/1*(3+5)-2 = 30, at 4.15 min
Use 1 to 5, No. 122182 : ((4/1)*(3+5))-2 = 30, at 4.15 min
Use 1 to 5, No. 122181 : (4/1)*(3+5)-2 = 30, at 4.15 min
Use 1 to 5, No. 107093 : ((5/1+3)*4)-2 = 30, at 3.65 min
Use 1 to 5, No. 107092 : (5/1+3)*4-2 = 30, at 3.65 min
Use 1 to 5, No. 107059 : (((5/1)+3)*4)-2 = 30, at 3.64 min
Use 1 to 5, No. 107058 : ((5/1)+3)*4-2 = 30, at 3.64 min
Use 1 to 5, No. 105023 : ((3/1+5)*4)-2 = 30, at 3.57 min
Use 1 to 5, No. 105022 : (3/1+5)*4-2 = 30, at 3.57 min
Use 1 to 5, No. 104989 : (((3/1)+5)*4)-2 = 30, at 3.57 min
Use 1 to 5, No. 104988 : ((3/1)+5)*4-2 = 30, at 3.57 min
Use 1 to 5, No. 90535 : (4*(5/1+3))-2 = 30, at 3.09 min
Use 1 to 5, No. 90534 : 4*(5/1+3)-2 = 30, at 3.09 min
Use 1 to 5, No. 90513 : (4*((5/1)+3))-2 = 30, at 3.09 min
Use 1 to 5, No. 90512 : 4*((5/1)+3)-2 = 30, at 3.09 min
Use 1 to 5, No. 90265 : (4*(3/1+5))-2 = 30, at 3.08 min
Use 1 to 5, No. 90264 : 4*(3/1+5)-2 = 30, at 3.08 min
Use 1 to 5, No. 90243 : (4*((3/1)+5))-2 = 30, at 3.08 min
Use 1 to 5, No. 90242 : 4*((3/1)+5)-2 = 30, at 3.08 min
Use 1 to 5, No. 85095 : 4*(5-1/2+3) = 30, at 2.91 min
Use 1 to 5, No. 85091 : 4*((5-1/2)+3) = 30, at 2.91 min
Use 1 to 5, No. 85081 : 4*(5-(1/2)+3) = 30, at 2.91 min
Use 1 to 5, No. 85077 : 4*((5-(1/2))+3) = 30, at 2.91 min
Use 1 to 5, No. 84825 : 4*(3-1/2+5) = 30, at 2.90 min
Use 1 to 5, No. 84821 : 4*((3-1/2)+5) = 30, at 2.90 min
Use 1 to 5, No. 84811 : 4*(3-(1/2)+5) = 30, at 2.90 min
Use 1 to 5, No. 84807 : 4*((3-(1/2))+5) = 30, at 2.89 min
Use 1 to 5, No. 74470 : (4*(5+3/1))-2 = 30, at 2.54 min
Use 1 to 5, No. 74469 : 4*(5+3/1)-2 = 30, at 2.54 min
Use 1 to 5, No. 74456 : (4*(5+(3/1)))-2 = 30, at 2.54 min
Use 1 to 5, No. 74455 : 4*(5+(3/1))-2 = 30, at 2.54 min
Use 1 to 5, No. 74452 : (4*(5+3)/1)-2 = 30, at 2.54 min
Use 1 to 5, No. 74448 : (4*((5+3)/1))-2 = 30, at 2.54 min
Use 1 to 5, No. 74447 : 4*((5+3)/1)-2 = 30, at 2.54 min
Use 1 to 5, No. 74445 : ((4*(5+3))/1)-2 = 30, at 2.54 min
Use 1 to 5, No. 74444 : (4*(5+3))/1-2 = 30, at 2.54 min
Use 1 to 5, No. 74443 : 4*(5+3)/1-2 = 30, at 2.54 min
Use 1 to 5, No. 74200 : (4*(3+5/1))-2 = 30, at 2.53 min
Use 1 to 5, No. 74199 : 4*(3+5/1)-2 = 30, at 2.53 min
Use 1 to 5, No. 74186 : (4*(3+(5/1)))-2 = 30, at 2.53 min
Use 1 to 5, No. 74185 : 4*(3+(5/1))-2 = 30, at 2.53 min
Use 1 to 5, No. 74182 : (4*(3+5)/1)-2 = 30, at 2.53 min
Use 1 to 5, No. 74178 : (4*((3+5)/1))-2 = 30, at 2.53 min
Use 1 to 5, No. 74177 : 4*((3+5)/1)-2 = 30, at 2.53 min
Use 1 to 5, No. 74175 : ((4*(3+5))/1)-2 = 30, at 2.53 min
Use 1 to 5, No. 74174 : (4*(3+5))/1-2 = 30, at 2.53 min
Use 1 to 5, No. 74173 : 4*(3+5)/1-2 = 30, at 2.53 min
Use 1 to 5, No. 69097 : (4*(5+3)-2)/1 = 30, at 2.36 min
Use 1 to 5, No. 69095 : 4*(5+3)-(2/1) = 30, at 2.36 min
Use 1 to 5, No. 69091 : (4*(5+3))-(2/1) = 30, at 2.36 min
Use 1 to 5, No. 69090 : ((4*(5+3))-2)/1 = 30, at 2.35 min
Use 1 to 5, No. 69089 : (4*(5+3))-2/1 = 30, at 2.35 min
Use 1 to 5, No. 69088 : 4*(5+3)-2/1 = 30, at 2.35 min
Use 1 to 5, No. 69075 : 4*(5+3-1/2) = 30, at 2.35 min
Use 1 to 5, No. 69073 : 4*(5+(3-1/2)) = 30, at 2.35 min
Use 1 to 5, No. 69066 : 4*(5+3-(1/2)) = 30, at 2.35 min
Use 1 to 5, No. 69064 : 4*(5+(3-(1/2))) = 30, at 2.35 min
Use 1 to 5, No. 69053 : 4*((5+3)-1/2) = 30, at 2.35 min
Use 1 to 5, No. 69051 : 4*((5+3)-(1/2)) = 30, at 2.35 min
Use 1 to 5, No. 68827 : (4*(3+5)-2)/1 = 30, at 2.34 min
Use 1 to 5, No. 68825 : 4*(3+5)-(2/1) = 30, at 2.34 min
Use 1 to 5, No. 68821 : (4*(3+5))-(2/1) = 30, at 2.34 min
Use 1 to 5, No. 68820 : ((4*(3+5))-2)/1 = 30, at 2.34 min
Use 1 to 5, No. 68819 : (4*(3+5))-2/1 = 30, at 2.34 min
Use 1 to 5, No. 68818 : 4*(3+5)-2/1 = 30, at 2.34 min
Use 1 to 5, No. 68805 : 4*(3+5-1/2) = 30, at 2.34 min
Use 1 to 5, No. 68803 : 4*(3+(5-1/2)) = 30, at 2.34 min
Use 1 to 5, No. 68796 : 4*(3+5-(1/2)) = 30, at 2.34 min
Use 1 to 5, No. 68794 : 4*(3+(5-(1/2))) = 30, at 2.34 min
Use 1 to 5, No. 68783 : 4*((3+5)-1/2) = 30, at 2.34 min
Use 1 to 5, No. 68781 : 4*((3+5)-(1/2)) = 30, at 2.34 min
Use 1 to 5, No. 58364 : (5-1/2+3)*4 = 30, at 1.98 min
Use 1 to 5, No. 58358 : ((5-1/2)+3)*4 = 30, at 1.98 min
Use 1 to 5, No. 58342 : (5-(1/2)+3)*4 = 30, at 1.98 min
Use 1 to 5, No. 58335 : ((5-(1/2))+3)*4 = 30, at 1.98 min
Use 1 to 5, No. 56249 : (3-1/2+5)*4 = 30, at 1.91 min
Use 1 to 5, No. 56243 : ((3-1/2)+5)*4 = 30, at 1.91 min
Use 1 to 5, No. 56227 : (3-(1/2)+5)*4 = 30, at 1.91 min
Use 1 to 5, No. 56220 : ((3-(1/2))+5)*4 = 30, at 1.91 min
Use 1 to 5, No. 31943 : ((5+3/1)*4)-2 = 30, at 1.09 min
Use 1 to 5, No. 31942 : (5+3/1)*4-2 = 30, at 1.09 min
Use 1 to 5, No. 31920 : ((5+(3/1))*4)-2 = 30, at 1.09 min
Use 1 to 5, No. 31919 : (5+(3/1))*4-2 = 30, at 1.09 min
Use 1 to 5, No. 31916 : ((5+3)/1*4)-2 = 30, at 1.09 min
Use 1 to 5, No. 31909 : (((5+3)/1)*4)-2 = 30, at 1.09 min
Use 1 to 5, No. 31908 : ((5+3)/1)*4-2 = 30, at 1.09 min
Use 1 to 5, No. 31907 : (5+3)/1*4-2 = 30, at 1.09 min
Use 1 to 5, No. 30053 : ((3+5/1)*4)-2 = 30, at 1.02 min
Use 1 to 5, No. 30052 : (3+5/1)*4-2 = 30, at 1.02 min
Use 1 to 5, No. 30030 : ((3+(5/1))*4)-2 = 30, at 1.02 min
Use 1 to 5, No. 30029 : (3+(5/1))*4-2 = 30, at 1.02 min
Use 1 to 5, No. 30026 : ((3+5)/1*4)-2 = 30, at 1.02 min
Use 1 to 5, No. 30019 : (((3+5)/1)*4)-2 = 30, at 1.02 min
Use 1 to 5, No. 30018 : ((3+5)/1)*4-2 = 30, at 1.02 min
Use 1 to 5, No. 30017 : (3+5)/1*4-2 = 30, at 1.02 min
Use 1 to 5, No. 21251 : ((5+3)*4/1)-2 = 30, at 43 s
Use 1 to 5, No. 21247 : ((5+3)*(4/1))-2 = 30, at 43 s
Use 1 to 5, No. 21246 : (5+3)*(4/1)-2 = 30, at 43 s
Use 1 to 5, No. 21244 : (((5+3)*4)/1)-2 = 30, at 43 s
Use 1 to 5, No. 21243 : ((5+3)*4)/1-2 = 30, at 43 s
Use 1 to 5, No. 21242 : (5+3)*4/1-2 = 30, at 43 s
Use 1 to 5, No. 19361 : ((3+5)*4/1)-2 = 30, at 39 s
Use 1 to 5, No. 19357 : ((3+5)*(4/1))-2 = 30, at 39 s
Use 1 to 5, No. 19356 : (3+5)*(4/1)-2 = 30, at 39 s
Use 1 to 5, No. 19354 : (((3+5)*4)/1)-2 = 30, at 39 s
Use 1 to 5, No. 19353 : ((3+5)*4)/1-2 = 30, at 39 s
Use 1 to 5, No. 19352 : (3+5)*4/1-2 = 30, at 39 s
Use 1 to 5, No. 15896 : ((5+3)*4-2)/1 = 30, at 32 s
Use 1 to 5, No. 15894 : (5+3)*4-(2/1) = 30, at 32 s
Use 1 to 5, No. 15890 : ((5+3)*4)-(2/1) = 30, at 32 s
Use 1 to 5, No. 15889 : (((5+3)*4)-2)/1 = 30, at 32 s
Use 1 to 5, No. 15888 : ((5+3)*4)-2/1 = 30, at 32 s
Use 1 to 5, No. 15887 : (5+3)*4-2/1 = 30, at 32 s
Use 1 to 5, No. 14006 : ((3+5)*4-2)/1 = 30, at 28 s
Use 1 to 5, No. 14004 : (3+5)*4-(2/1) = 30, at 28 s
Use 1 to 5, No. 14000 : ((3+5)*4)-(2/1) = 30, at 28 s
Use 1 to 5, No. 13999 : (((3+5)*4)-2)/1 = 30, at 28 s
Use 1 to 5, No. 13998 : ((3+5)*4)-2/1 = 30, at 28 s
Use 1 to 5, No. 13997 : (3+5)*4-2/1 = 30, at 28 s
Use 1 to 5, No. 10304 : (5+3-1/2)*4 = 30, at 21 s
Use 1 to 5, No. 10300 : (5+(3-1/2))*4 = 30, at 21 s
Use 1 to 5, No. 10290 : (5+3-(1/2))*4 = 30, at 21 s
Use 1 to 5, No. 10286 : (5+(3-(1/2)))*4 = 30, at 21 s
Use 1 to 5, No. 10271 : ((5+3)-1/2)*4 = 30, at 21 s
Use 1 to 5, No. 10267 : ((5+3)-(1/2))*4 = 30, at 21 s
Use 1 to 5, No. 8414 : (3+5-1/2)*4 = 30, at 17 s
Use 1 to 5, No. 8410 : (3+(5-1/2))*4 = 30, at 17 s
Use 1 to 5, No. 8400 : (3+5-(1/2))*4 = 30, at 17 s
Use 1 to 5, No. 8396 : (3+(5-(1/2)))*4 = 30, at 17 s
Use 1 to 5, No. 8381 : ((3+5)-1/2)*4 = 30, at 17 s
Use 1 to 5, No. 8377 : ((3+5)-(1/2))*4 = 30, at 17 s
Search result(s) for 30...

เราสามารถเลือกได้ว่าต้องการได้คำตอบเป็นเท่าใด (เลขจำนวนเต็มระหว่าง –100 ถึง 100) และขอบเขต ของกลุ่มตัวเลขที่จะใช้ (เช่น จาก 1 ถึง 5, 6, 7, 8, 9 เป็นต้น) สำหรับการคำนวณที่ใช้เครื่องหมาย บวก ลบ คูณ และ หาร ทุกตัวเพียงครั้งเดียว และใช้ตัวเลข 5 ตัวที่ไม่ซ้ำกัน ก่อนที่จะกดปุ่ม Search นอกจากนี้ยังสามารถเลือกปุ่ม Search All ได้ด้วยครับ ซึ่งจะค้นหาคำตอบที่เป็นไปได้ทั้งหมดตั้งแต่ –100 ถึง 100 ซึ่งอาจใช้เวลานาน ในกรณีที่เราพิจารณาอยู่นี้ผมให้โปรแกรมวิเคราะห์ผลคำตอบตั้งแต่ –35 ถึง 35 ซึ่งมีคำตอบดังนี้

Aim at -35, Number of ways possible = 20, Probability = 1.54E-02
Example: Use 1 to 5, No. 19085 : ((3+4)*5)/(1-2) = -35

Aim at -34, Number of ways possible = 0, Probability = 0.00E+00

Aim at -33, Number of ways possible = 96, Probability = 7.41E-02
Example: Use 1 to 5, No. 33898 : 2-(3+4)*5/1 = -33

Aim at -32, Number of ways possible = 20, Probability = 1.54E-02
Example: Use 1 to 5, No. 19355 : ((3+5)*4)/(1-2) = -32

Aim at -31, Number of ways possible = 0, Probability = 0.00E+00

Aim at -30, Number of ways possible = 104, Probability = 8.02E-02
Example: Use 1 to 5, No. 33988 : 2-(3+5)*4/1 = -30

Aim at -29, Number of ways possible = 0, Probability = 0.00E+00

Aim at -28, Number of ways possible = 16, Probability = 1.23E-02
Example: Use 1 to 5, No. 17828 : (2+4)*((1/3)-5) = -28

Aim at -27, Number of ways possible = 116, Probability = 8.95E-02
Example: Use 1 to 5, No. 20435 : ((4+5)*3)/(1-2) = -27

Aim at -26, Number of ways possible = 0, Probability = 0.00E+00

Aim at -25, Number of ways possible = 280, Probability = 2.16E-01
Example: Use 1 to 5, No. 16925 : ((1+4)*5)/(2-3) = -25

Aim at -24, Number of ways possible = 88, Probability = 6.79E-02
Example: Use 1 to 5, No. 17195 : ((1+5)*4)/(2-3) = -24

Aim at -23, Number of ways possible = 8, Probability = 6.17E-03
Example: Use 1 to 5, No. 19096 : (3+(4*5))/(1-2) = -23

Aim at -22, Number of ways possible = 16, Probability = 1.23E-02
Example: Use 1 to 5, No. 30886 : (4+(3/2))*(1-5) = -22

Aim at -21, Number of ways possible = 320, Probability = 2.47E-01
Example: Use 1 to 5, No. 13641 : (3+4)*(2-5)/1 = -21

Aim at -20, Number of ways possible = 40, Probability = 3.09E-02
Example: Use 1 to 5, No. 17018 : (1+5)*((2/3)-4) = -20

Aim at -19, Number of ways possible = 208, Probability = 1.60E-01
Example: Use 1 to 5, No. 16940 : 1+(4*5)/(2-3) = -19

Aim at -18, Number of ways possible = 72, Probability = 5.56E-02
Example: Use 1 to 5, No. 16478 : (1+3)*((2/4)-5) = -18

Aim at -17, Number of ways possible = 256, Probability = 1.98E-01
Example: Use 1 to 5, No. 19100 : 3+(4*5)/(1-2) = -17

Aim at -16, Number of ways possible = 160, Probability = 1.23E-01
Example: Use 1 to 5, No. 13911 : (3+5)*(2-4)/1 = -16

Aim at -15, Number of ways possible = 628, Probability = 4.84E-01
Example: Use 1 to 5, No. 1486 : 2+3-4*5/1 = -15

Aim at -14, Number of ways possible = 100, Probability = 7.72E-02
Example: Use 1 to 5, No. 13551 : (3+4)*(1-5)/2 = -14

Aim at -13, Number of ways possible = 248, Probability = 1.91E-01
Example: Use 1 to 5, No. 16793 : (1+4)*((2/5)-3) = -13

Aim at -12, Number of ways possible = 354, Probability = 2.73E-01
Example: Use 1 to 5, No. 12561 : (2+4)*(3-5)/1 = -12

Aim at -11, Number of ways possible = 232, Probability = 1.79E-01
Example: Use 1 to 5, No. 16298 : (1+2)*((4/3)-5) = -11

Aim at -10, Number of ways possible = 256, Probability = 1.98E-01
Example: Use 1 to 5, No. 16655 : ((1+3)*5)/(2-4) = -10

Aim at -9, Number of ways possible = 857, Probability = 6.61E-01
Example: Use 1 to 5, No. 1756 : 2+4-3*5/1 = -9

Aim at -8, Number of ways possible = 428, Probability = 3.30E-01
Example: Use 1 to 5, No. 412 : ((1+3)-(4*5))/2 = -8

Aim at -7, Number of ways possible = 436, Probability = 3.36E-01
Example: Use 1 to 5, No. 2578 : 3+(2-4)*5/1 = -7

Aim at -6, Number of ways possible = 688, Probability = 5.31E-01
Example: Use 1 to 5, No. 406 : 1+3-4*5/2 = -6

Aim at -5, Number of ways possible = 1096, Probability = 8.46E-01
Example: Use 1 to 5, No. 160 : 1+(2-(4*5))/3 = -5

Aim at -4, Number of ways possible = 392, Probability = 3.02E-01
Example: Use 1 to 5, No. 3483 : (4+((1-5)*3))/2 = -4

Aim at -3, Number of ways possible = 1984, Probability = 1.53E+00
Example: Use 1 to 5, No. 52 : ((1+2)-(3*5))/4 = -3

Aim at -2, Number of ways possible = 488, Probability = 3.77E-01
Example: Use 1 to 5, No. 198 : (1+((2-5)*3))/4 = -2

Aim at -1, Number of ways possible = 1824, Probability = 1.41E+00
Example: Use 1 to 5, No. 25 : 1+(2-(3*4))/5 = -1

Aim at 0, Number of ways possible = 3010, Probability = 2.32E+00
Example: Use 1 to 5, No. 3 : ((1+2)-3)*4/5 = 0

Aim at 1, Number of ways possible = 3344, Probability = 2.58E+00
Example: Use 1 to 5, No. 288 : (1+((3-2)*4))/5 = 1

Aim at 2, Number of ways possible = 822, Probability = 6.34E-01
Example: Use 1 to 5, No. 913 : 1+(5-3)*2/4 = 2

Aim at 3, Number of ways possible = 3352, Probability = 2.59E+00
Example: Use 1 to 5, No. 693 : (1+((4-3)*5))/2 = 3

Aim at 4, Number of ways possible = 790, Probability = 6.10E-01
Example: Use 1 to 5, No. 2928 : ((3+4)-5)*2/1 = 4

Aim at 5, Number of ways possible = 2944, Probability = 2.27E+00
Example: Use 1 to 5, No. 588 : ((1+4)-2)*5/3 = 5

Aim at 6, Number of ways possible = 594, Probability = 4.58E-01
Example: Use 1 to 5, No. 948 : ((1+5)-3)*4/2 = 6

Aim at 7, Number of ways possible = 1004, Probability = 7.75E-01
Example: Use 1 to 5, No. 1678 : 2+(4-1)*5/3 = 7

Aim at 8, Number of ways possible = 756, Probability = 5.83E-01
Example: Use 1 to 5, No. 1938 : ((2+5)-1)*4/3 = 8

Aim at 9, Number of ways possible = 1584, Probability = 1.22E+00
Example: Use 1 to 5, No. 2118 : ((2+5)-4)*3/1 = 9

Aim at 10, Number of ways possible = 446, Probability = 3.44E-01
Example: Use 1 to 5, No. 2038 : 2+(5-3)*4/1 = 10

Aim at 11, Number of ways possible = 448, Probability = 3.46E-01
Example: Use 1 to 5, No. 3028 : 3+(5-1)*4/2 = 11

Aim at 12, Number of ways possible = 746, Probability = 5.76E-01
Example: Use 1 to 5, No. 4098 : ((4+5)-1)*3/2 = 12

Aim at 13, Number of ways possible = 380, Probability = 2.93E-01
Example: Use 1 to 5, No. 2848 : 3+(4-2)*5/1 = 13

Aim at 14, Number of ways possible = 220, Probability = 1.70E-01
Example: Use 1 to 5, No. 3018 : ((3+5)-1)*4/2 = 14

Aim at 15, Number of ways possible = 988, Probability = 7.62E-01
Example: Use 1 to 5, No. 1758 : ((2+4)-3)*5/1 = 15

Aim at 16, Number of ways possible = 360, Probability = 2.78E-01
Example: Use 1 to 5, No. 2028 : ((2+5)-3)*4/1 = 16

Aim at 17, Number of ways possible = 232, Probability = 1.79E-01
Example: Use 1 to 5, No. 12827 : (2+5)*3-4/1 = 17

Aim at 18, Number of ways possible = 184, Probability = 1.42E-01
Example: Use 1 to 5, No. 6307 : ((1+5)-(3/2))*4 = 18

Aim at 19, Number of ways possible = 184, Probability = 1.42E-01
Example: Use 1 to 5, No. 12250 : (2+3)*(4-(1/5)) = 19

Aim at 20, Number of ways possible = 88, Probability = 6.79E-02
Example: Use 1 to 5, No. 8388 : (3+((5-1)/2))*4 = 20

Aim at 21, Number of ways possible = 539, Probability = 4.16E-01
Example: Use 1 to 5, No. 4188 : ((4+5)-2)*3/1 = 21

Aim at 22, Number of ways possible = 48, Probability = 3.70E-02
Example: Use 1 to 5, No. 26565 : ((5+(3/2))-1)*4 = 22

Aim at 23, Number of ways possible = 64, Probability = 4.94E-02
Example: Use 1 to 5, No. 19141 : (3+(4*5))/(2-1) = 23

Aim at 24, Number of ways possible = 312, Probability = 2.41E-01
Example: Use 1 to 5, No. 3108 : ((3+5)-2)*4/1 = 24

Aim at 25, Number of ways possible = 504, Probability = 3.89E-01
Example: Use 1 to 5, No. 2838 : ((3+4)-2)*5/1 = 25

Aim at 26, Number of ways possible = 0, Probability = 0.00E+00

Aim at 27, Number of ways possible = 132, Probability = 1.02E-01
Example: Use 1 to 5, No. 12647 : (2+4)*5-3/1 = 27

Aim at 28, Number of ways possible = 16, Probability = 1.23E-02
Example: Use 1 to 5, No. 12610 : (2+4)*(5-(1/3)) = 28

Aim at 29, Number of ways possible = 0, Probability = 0.00E+00

Aim at 30, Number of ways possible = 136, Probability = 1.05E-01
Example: Use 1 to 5, No. 8377 : ((3+5)-(1/2))*4 = 30

Aim at 31, Number of ways possible = 0, Probability = 0.00E+00

Aim at 32, Number of ways possible = 36, Probability = 2.78E-02
Example: Use 1 to 5, No. 19400 : ((3+5)*4)/(2-1) = 32

Aim at 33, Number of ways possible = 96, Probability = 7.41E-02
Example: Use 1 to 5, No. 13727 : (3+4)*5-2/1 = 33

Aim at 34, Number of ways possible = 0, Probability = 0.00E+00

Aim at 35, Number of ways possible = 36, Probability = 2.78E-02
Example: Use 1 to 5, No. 19130 : ((3+4)*5)/(2-1) = 35

เราสามารถสร้างกราฟความสัมพันธ์ระหว่างคำตอบกับความถี่ของคำตอบที่เกิดขึ้นครับ เพื่อดูว่าคำตอบไหนมีโอกาสเกิดขึ้นมากหรือน้อยกว่ากัน

เมื่อเพื่อน ๆ ใช้โปรแกรมอาจสังเกตว่า ทำไมถึงต้องรันให้เสร็จเป็นชุด ๆ หลายชุด น่าจะรันโปรแกรมม้วนเดียวจบ คือกระจายผลคำตอบที่ได้ไปเลยจะได้คำนวณแต่ละรูปแบบเพียงครั้งเดียว ผมได้ลองรันโปรแกรมในรูปแบบหลังนี้แล้ว ปรากฏว่าช้ากว่ามาก เพราะต้องเสียเวลาจัดกลุ่มตัวเลขที่ได้คำตอบตรงกันเข้าด้วยกันอยู่ดีครับ เราจะใช้โปรแกรมนี้เป็นฐานในการพัฒนาให้ครอบคลุมกรณีอื่น ๆ ได้อีก เช่น ถ้าให้ใช้เครื่องหมายซ้ำกันได้, ให้ใช้ตัวเลขได้น้อยหรือมากกว่า 5 ตัว, ใช้เครื่องหมายมากหรือน้อยกว่า 4 ตัว, ให้เริ่มใช้ตัวเลขที่ไม่ใช่ 1 ฯลฯ ทิศทางการพัฒนาโปรแกรมจะขึ้นกับคำถามที่โพสต์กันเข้ามาและความสนใจของเพื่อนสมาชิกต่อคำถามนั้น ๆ ครับ ^ ^


หากมีข้อแนะนำกรุณาติดต่อที่อีเมลล์ : Practical_x_2@hotmail.com