|
โพสต์เมื่อ:
20:39 วันที่ 9 ต.ค. 2544 ชมแล้ว:
2,914
ตอบแล้ว:
21
[มีคนถามผมนานมาแล้วครับ โจทย์ข้อนี้ ใครรู้คำตอบแล้วก็ยังร่วมสนุก
แสดงความเห็นได้นะครับ ] มีลูกบอลอยู่ 12 ลูก ดูภายนอกเหมือนกันหมด แต่มีอยู่ 1 ลูกที่มีน้ำหนักต่างไปจากพวก มีเครื่องชั่ง 1 อัน เป็นเครื่องชั่งเปรียบเทียบที่สามารถบอกได้ว่า ด้านซ้ายหรือด้านขวาหนักกว่า แต่ไม่สามารถบอกน้ำหนักเป็นกิโลกรัมได้ ท่านจะมีวิธิการชั่งอย่างไร จึงจะสามารถรู้ว่าลูกใหนต่างจากลูกอื่น และน้ำหนักของลูกนั้นเมื่อเทียบกับลูกอื่นแล้วเป็นอย่างไร (หนักกว่า หรือ เบากว่า ลูกอื่น ๆ ) โดยใช้จำนวนครั้งของการชั่งให้น้อยที่สุดเท่าที่จะทำได้ [ หากใครชอบก็ลองคิดต่อนะครับ หากมีทั้งหมด N ลูก จะใช้จำนวนครั้งในการชั่งอย่างน้อยที่สุดกี่ครั้งครับ ( กระผมไม่รู้หรอกครับ แต่น่าสนใจดี ) หรือ ลองคิดว่า หากชั่งทั้งหมด M ครั้ง จะสามารถแยกลูกบลกที่ต่างจากพวก ออกจากกลุ่มลูกบอลมากที่สุดกี่ลูก ] จำนวน 19 ความเห็น, หน้า่ | -1- ขอเลือกทำคำถามสุดท้ายก่อนนะครับ ที่ว่า " . . . หาจำนวนลูกบอลมากที่สุด ในการชั่ง M ครั้ง เพื่อหาลูกบอล1ลูกที่ผิดปกติ และระบุได้ด้วยว่าลูกที่ผิดปกตินั้นหนักหรือเบากว่าปกติ . . ." ก่อนอื่นขออธิบายวิธีชั่งคร่าวๆนะครับ ( ต้องขออภัยล่วงหน้าด้วย ถ้าอธิบายไม่ดี ยาวเกินไป อ่านแล้วเข้าใจยาก แต่อย่างไรก็ตาม ผมจะพยายามเขียนให้อ่านเข้าใจได้ง่ายที่สุด ยังไงก็ช่วยพยายามอ่านที่ผมเขียนหน่อยนะครับ ขอบคุณครับ) วิธีชั่ง ชั่งครั้งแรก : จะแบ่งลูกบอลออกเป็นสองกลุ่ม คือ กลุ่มที่นำขึ้นชั่ง กับกลุ่มที่ไม่นำขึ้นชั่ง กลุ่มที่นำขึ้นชั่งนี้จะต้องเป็นจำนวนคู่ เพื่อให้สามารถแบ่งเป็นจำนวนเท่าๆกันเพื่อชั่งบนตาชั่งทั้งสองข้างได้ ผลของการชั่งครั้งแรก จะเป็นไปได้ ๒ กรณี คือ ก) ตาชั่งเอียง : แสดงว่า - ลูกบอลที่อยู่ในกลุ่มที่ไม่ได้นำขึ้นชั่งนั้น เป็นลูกปกติหมด (นำไปช่วยในการชั่งครั้งถัดไปได้) - อาจมีลูกหนักผิดปกติปนอยู่ ในกลุ่มที่นำขึ้นชั่งในซีกที่หนักกว่า หรือ อาจมีลูกเบาผิดปกติปนอยู่ ในกลุ่มที่นำขึ้นชั่งในซีกที่เบากว่า ข) ตาชั่งสมดุล : แสดงว่า - ลูกบอลที่อยู่ในกลุ่มที่นำขึ้นชั่งนั้น เป็นลูกปกติทั้งหมด (สามารถนำไปช่วยในการชั่งครั้งถัดๆไปได้) - มีลูกผิดปกติอยู่(ไม่ทราบว่าหนักหรือเบากว่าปกติ) ปนอยู่ในกลุ่มที่ไม่ได้นำขึ้นชั่ง ( หมายเหตุ : จากการชั่งครั้งแรกนี้ เราจะทราบว่าลูกบอลลูกใดเป็นลูกปกติบ้างจำนวนหนึ่ง ซึ่งสามารถนำไปช่วยในการชั่งครั้งถัดๆไปได้ ) การชั่งครั้งถัดไป??? การชั่งครั้งถัดไป ในกรณี ก) ชั่งแล้วตาชั่งเอียง ให้แบ่งลูกบอลที่นำมาชั่งแล้วทราบว่า "อาจมีลูกหนักปนอยู่(ในซีกที่หนักกว่า) หรืออาจมีลูกเบาปนอยู่(ในซีกที่เบากว่า)" ออกเป็น 3 กลุ่ม คือ กลุ่มแรก : เอาออกจากตาชั่ง (ไม่นำมาชั่ง) กลุ่มสอง : ย้ายสลับข้าง ( ซีกที่เดิมหนักกว่า-->ซีกที่เดิมเบากว่า , ซีกที่เดิมเบากว่า-->ซีกที่เดิมหนักกว่า) กลุ่มสาม : ไม่ย้ายไปไหน ( เดิมอยู่ซีกไหน ก็ชั่งซีกนั้นเหมือนเดิม) (หมายเหตุ : ถ้าแบ่งแล้ว จำนวนลูกบอลในแต่ละซีกของตาชั่งไม่เท่ากัน ให้นำลูกปกติมาเติมให้เท่ากัน) ผลการชั่งเป็นไปได้ ๓ แบบ คือ a) ตาชั่งสมดุล : แสดงว่า มีลูกผิดปกติปนอยู่ในกลุ่มที่เอาออกจากตาชั่ง โดย อาจมีลูกหนักผิดปกติปนอยู่ ในส่วนที่เอาออกจากซีกที่เดิมหนักกว่า หรือ อาจมีลูกเบาผิดปกติปนอยู่ ในส่วนที่เอาออกจากซีกที่เดิมเบากว่า และลูกอื่นๆเป็นลูกปกติ b) ตาชั่งเอียงสลับข้างจากเดิม : แสดงว่า มีลูกผิดปกติปนอยู่ในกลุ่มที่ย้ายสลับข้าง โดย อาจมีลูกหนักผิดปกติปนอยู่ ในส่วนที่ย้ายจากซีกที่เดิมหนักกว่า (ไปอยู่ซีกใหม่ที่ชั่งแล้วหนักกว่า) หรือ อาจมีลูกเบาผิดปกติปนอยู่ ในส่วนที่ย้ายจากซีกที่เดิมเบากว่า (ไปอยู่ซีกใหม่ที่ชั่งแล้วเบากว่า) และลูกอื่นๆเป็นลูกปกติ c) ตาชั่งเอียงเหมือนเดิม : แสดงว่า มีลูกผิดปกติปนอยู่ในกลุ่มที่ไม่ได้ย้ายไปไหน โดย อาจมีลูกหนักผิดปกติปนอยู่ ในส่วนที่อยู่ในซีกที่เดิมหนักกว่า (ยังคงอยู่ในซีกที่หนักกว่า) หรือ อาจมีลูกเบาผิดปกติปนอยู่ ในส่วนที่อยู่ในซีกซีกที่เดิมเบากว่า (ยังคงอยู่ในซีกที่เบากว่า) และลูกอื่นๆเป็นลูกปกติ จากผลการชั่งที่ได้ จะเห็นว่าผลลัพธ์ที่ออกมานั้นจะเหมือนๆเดิม คือ จะทราบว่าลูกใดเป็นลูกปกติเพิ่มมากขึ้น และ ทราบว่าส่วนไหนอาจมีลูกหนักผิดปกติปนอยู่ ส่วนไหนอาจมีลูกเบาผิดปกติปนอยู่ ทำให้เราสามารถให้วิธีการเดิมชั่งในครั้งถัดๆไปได้ (แบ่งเป็น 3 กลุ่ม : เอาออกจากตาชั่ง-สลับข้าง -ไม่ย้ายไปไหน ) การชั่งครั้งถัดไป ในกรณี ข) ชั่งแล้วตาชั่งสมดุล ให้แบ่งลูกบอลที่ยังไม่ได้นำขึ้นชั่ง(กลุ่มที่มีลูกผิดปกติที่ไม่ทราบว่าหนักหรือเบากว่าปกติปนอยู่) เป็นสองส่วน คือ กลุ่มที่นำขึ้นชั่ง กับ กลุ่มที่ไม่นำขึ้นชั่ง ซึ่ง กลุ่มที่นำขึ้นชั่งนี้ จะมีจำนวนคู่หรือคี่ก็ได้ ไม่บังคับว่าต้องเป็นจำนวนคู่เหมือนการชั่งครั้งแรก เพราะว่าตอนนี้(หลังจากการชั่งครั้งแรก) เรามีลูกบอลที่ทราบว่าเป็นลูกปกติมาช่วยในการชั่งแล้ว (ช่วยทำให้ตาชั่งสองข้าง มีจำนวนลูกบอลเท่ากัน) ผลลัพธ์จากการชั่งครั้งนี้ จะทำให้เราทราบว่า ลูกบอลลูกใดเป็นลูกปกติอีกบ้าง มีลูกผิดปกติที่ไม่ทราบว่าหนักหรือเบากว่าปกติปนอยู่ในกลุ่มที่ยังไม่ได้นำมาชั่ง (กรณีชั่งแล้วหนักเท่ากัน) หรือ อาจมีลูกหนักผิดปกติปนอยู่ในกลุ่มที่นำมาชั่งซีกที่หนักกว่า หรือ อาจมีลูกเบาผิดปกติปนอยู่ในกลุ่มที่นำมาชั่งในซีกที่เบากว่า (กรณีชั่งแล้วตาชั่งเอียง) ซึ่งผลลัพธ์ที่ได้มีรูปแบบเหมือนๆเดิม ทำให้เราสามารถใช้วิธีการเดิมในการชั่งครั้งถัดๆไป เด็กโต(มีต่อ) (IP: NULL) (ต่อ) ต่อไปจะหาจำนวนลูกบอลที่มากที่สุด(ชั่งโดยวิธีข้างบน) ที่สามารถชั่งได้ใน M ครั้ง เพื่อหาว่าลูกใดผิดปกติ และระบุได้ด้วยว่าผิดปกติอย่างไร(หนักหรือเบากว่าปกติ) ให้ a(n) แทนจำนวนลูกบอลที่มากที่สุด (ซึ่งไม่ทราบเลยว่าลูกใดปกติหรือผิดปกติอย่างไร) ที่ชั่ง n ครั้ง แล้วสามารถหาลูกผิดปกติและระบุได้ด้วยว่าผิดปกติอย่างไร โดยไม่มีลูกปกติให้ใช้เลย b(n) แทนจำนวนลูกบอลที่มากที่สุด (ซึ่งไม่ทราบเลยว่าลูกใดปกติหรือผิดปกติ) ที่ชั่ง n ครั้ง แล้วสามารถหาลูกผิดปกติและระบุได้ด้วยว่าผิดปกติอย่างไร โดยมีลูกปกติให้ใช้จำนวนหนึ่ง (ไม่รวมอยู่ในb(n)) c(n) แทนจำนวนลูกบอลที่มากที่สุด (ซึ่งไม่ทราบเลยว่าลูกใดปกติหรือผิดปกติอย่างไร แต่ทราบว่า อาจมีลูกหนักผิดปกติอยู่ในกลุ่มหนึ่ง หรือมีลูกเบาผิดปกติปนอยู่ในอีกกลุ่มหนึ่ง โดยจำนวนลูกบอลทั้งสองกลุ่มนี้ รวมกันแล้วเท่ากับ c(n) ) ที่ชั่ง n ครั้งแล้วสามารถหาลูกผิดปกติและระบุได้ด้วยว่าผิดปกติอย่างไร โดยมีลูกปกติให้ใช้จำนวนหนึ่ง (ไม่รวมอยู่ใน c(n)) หาค่า c(n) โดยพิจารณาแบบrecursive จากวิธีการชั่งข้างต้น (ดูกรณี ก. ชั่งแล้วตาชั่งเอียง) จะเห็นว่า การแบ่ง c(n) ชั่งด้วยวิธีข้างต้น (แบ่งเป็น 3 กลุ่ม : เอาออกจากตาชั่ง-สลับข้าง-ไม่ย้ายไปไหน ) ผลลัพธ์ที่ได้ทั้งสามแบบ จะมีคุณสมบัติเหมือนเดิมทุกประการ กล่าวคือ ชั่งแล้วจะทราบว่า " อาจมีลูกหนักผิดปกติอยู่ในกลุ่มหนึ่ง หรือมีลูกเบาผิดปกติปนอยู่ในอีกกลุ่มหนึ่ง " ซึ่งเราจะนำลูกบอลเหล่านี้ ไปชั่งด้วยวิธีเดิม ในการชั่ง n-1 ครั้งที่เหลือได้ ซึ่งเขียนเป็นความสัมพันธ์ได้ดังนี้ c(n) = c(n-1) + c(n-1) + c(n-1) = 3*c(n-1) = (3^n)*c(0) เมื่อ c(0) คือ จำนวนลูกสูงสุดที่ชั่ง 0 ครั้ง แล้วสามารถหาลูกผิดปกติและระบุได้ด้วยว่าผิดปกติอย่างไร เพราะเราทราบแน่แล้วว่า " อาจมีลูกหนักผิดปกติอยู่ในกลุ่มหนึ่ง หรือมีลูกเบาผิดปกติปนอยู่ในอีกกลุ่มหนึ่ง " ฉะนั้น c(0) = 1 (เป็นไปได้สองแบบ คือ - อาจมีลูกหนักผิดปกติอยู่ในกลุ่มที่มี 1 ลูก หรือ มีลูกเบาผิดปกติปนอยู่ในอีกกลุ่มหนึ่งซึ่งมี 0 ลูก - อาจมีลูกหนักผิดปกติอยู่ในกลุ่มที่มี 0 ลูก หรือ มีลูกเบาผิดปกติปนอยู่ในอีกกลุ่มหนึ่งซึ่งมี 1 ลูก ) แทนค่า c(0)=1 ลงใน c(n)=(3^n)*c(0) จะได้ c(n) = 3^n หาค่า b(n) โดยพิจารณาแบบrecursive จากวิธีการชั่งข้างต้น (ดูกรณี ข. ชั่งแล้วตาชั่งสมดุล) จะเห็นว่า การแบ่ง b(n) ชั่งด้วยวิธีข้างต้น (แบ่งเป็น 2 กลุ่ม : กลุ่มที่นำขึ้นชั่ง กับกลุ่มที่ไม่นำขึ้นชั่ง ) ผลลัพธ์ที่ได้จะมีสองแบบ แบบหนึ่งมีคุณสมบัติแบบb(n) อีกแบบหนึ่งมีคุณสมบัติแบบc(n) ดังนั้นในการชั่ง n-1 ครั้งที่เหลือ จะชั่งด้วยวิธีใดนั้นต้องดูผลลัพธ์จากการชั่งของครั้งก่อนหน้าด้วย และเราสามารถเขียนเป็นความสัมพันธ์ สำหรับ b(n) ได้ดังนี้ b(n) = b(n-1) + c(n-1) = b(n-1) + 3^(n-1) = b(0) + 1 + 3 + 9 + ... + 3^(n-1) เมื่อ b(0) คือ จำนวนลูกสูงสุดที่ชั่ง 0 ครั้ง แล้วสามารถหาลูกผิดปกติและระบุได้ด้วยว่าผิดปกติอย่างไร เพราะว่าเราไม่ทราบเลยว่า "ลูกที่ผิดปกตินั้นผิดปกติอย่างไร" จำนวนลูกสูงสุดที่ชั่งได้ 0 ครั้งจึงเท่ากับ 0 ลูก แทนค่า b(0)=0 ลงใน b(n) = b(0) + 1 + 3 + 9 + ... + 3^(n-1) จะได้ b(n) = ((3^n)-1)/2 ; (จากผลบวกอนุกรมเรขาคณิต) หาค่า a(n) โดยพิจารณาแบบrecursive จากวิธีการชั่งข้างต้น (ดูการชั่งครั้งแรก) ผลลัพธ์ที่ได้จะมีสองแบบ แบบหนึ่งมีคุณสมบัติแบบb(n) อีกแบบหนึ่งมีคุณสมบัติแบบc(n) นั่นคือ เราสามารถเขียนความสัมพันธ์ สำหรับa(n) กับจำนวนลูกบอลในการชั่ง n-1 ครั้งที่เหลือ ได้ดังนี้ a(n) = b(n-1)+c(n-1) เนื่องจาก c(n-1) คือจำนวนลูกบอลที่นำเอามาชั่งในครั้งแรก ซึ่งต้องเป็นจำนวนคู่ เพื่อที่จะแบ่งชั่งบนตาชั่ง ได้เท่าๆกันทั้งสองข้าง แต่เพราะว่า c(n) ที่คำนวนได้ข้างต้น มีค่า c(n) = 3^n ซึ่งเป็นเลขคี่เสมอ ดังนั้น เราจะต้องทำให้ c(n-1) เป็นจำนวนคู่ และเพราะว่าการชั่งครั้งแรกยังไม่มีลูกปกติให้ใช้ (เพราะว่ายังไม่ทราบว่าลูกใดปกติบ้าง) ดังนั้น จำนวนลูกบอลที่นำขึ้นชั่งครั้งแรกจึงเท่ากับ 3^(n-1)-1 จะได้ว่า a(n) = b(n-1) + 3^(n-1)-1 . . . = (3^(n-1)-1)/2 + 3^(n-1)-1 . . . = (3^n-1)/2 -1 . . . = (3^n-3)/2 ดังนั้นจำนวนลูกบอลมากที่สุด ในการชั่ง M ครั้ง จึงเท่ากับ (3^M-3)/2 ___________### เด็กโต(จบหนึ่งคำถาม) (IP: NULL) ต่อไปเป็นคำถามที่ว่า "...ถ้ามีลูกบอล N ลูก จะชั่งได้อย่างน้อยที่สุดกี่ครั้ง ? " จากวิธีการชั่งข้างต้น ชั่ง M ครั้ง ใช้ได้กับลูกบอลมากที่สุด (3^M-3)/2 ลูก นั่นคือ ลูกบอล N ลูกจะต้องน้อยกว่าหรือเท่ากับ (3^k-3)/2 ,เมื่อ คือ k จำนวนครั้งที่น้อยที่สุด หรือเขียนเป็นอสมการได้ว่า N <= (3^k-3)/2 2N+3 <= 3^k log(2N+3) <= log(3^k) log(2N+3) <= k(log(3)) k >= log(2N+3)/log(3) ดังนั้น จำนวนครั้งที่น้อยที่สุด = จำนวนเต็มที่น้อยที่สุด ที่มากกว่าหรือเท่ากับ log(2N+3)/log(3) _____### เด็กโต(จบอีกคำถาม) (IP: NULL) สำหรับคำถามลูกบอล 12 ลูก ขออนุาตขี้เกียจทำนะครับ :P เพราะชั่งได้หลายแบบ (ขึ้นอยู่ว่าใครจะโยกย้าย สลับข้าง หรือใช้ลูกปกติ จำนวนเท่าใด) แต่จะขอแสดงตัวอย่าง การชั่งลูกบอล (3^n-3)/2 ลูก โดยใช้ BigBaby Procedure ในการชั่ง สักหนึ่งตัวอย่าง แต่ก่อนอื่น อยากให้ลอง หาวิธีชั่งลูกบอล 3^m ลูก เพื่อหาลูกที่ผิดปกติ ซึ่งเราทราบแน่แล้วว่า ลูกที่ผิดปกตินั้น หนักกว่าลูกอื่น หรือ เบากว่าลูกอื่น อย่างใดอย่างหนึ่งแล้ว : ) เด็กโต (พักเหนื่อย) (IP: NULL) เริ่มนะครับ ตัวอย่าง การชั่งลูกบอล (3^n-3)/2 ลูก 1) แบ่งลูกบอลออกเป็น ๓ กอง กองละเท่าๆกัน คือ กองละ ( 3^(n-1) - 1 )/2 ลูก แล้วนำเอา สองกองมาชั่งเทียบกัน (เป็นการชั่งครั้งที่ ๑ ) - - - - > (2ก) ถ้า หนักไม่เท่ากัน ให้ใช้ Procedure BigBaby1(A,B,k) - - - - - - - - เมื่อ A แทน ลูกบอล ( 3^(n-k) - 1 )/2 ลูก ที่อาจมีลูกหนักกว่าปนอยู่หนึ่งลูก - - - - - - - - - - - B แทน ลูกบอล ( 3^(n-k) - 1 )/2 ลูก ที่อาจมีลูกเบากว่าปนอยู่หนึ่งลูก - - - - - - - - - - - และให้ E1 แทน ลูกบอล 3^(n-k-1) ลูก ที่ไม่มีลูกผิดปกติปนอยู่เลย - - - - - - - - - Procedure BigBaby1(A,B,k) นี้ จะทำการแบ่ง A เป็นสองส่วนคือ - - - - - - - - - A1 = 3^(n-k-1) ลูก กับ A2 = ( 3^(n-k-1) - 1 )/2 ลูก - - - - - - - - - และ แบ่ง B เป็น B1 = 3^(n-k-1) ลูก กับ B2 = ( 3^(n-k-1) - 1 )/2 ลูก - - - - - - - - - จากนั้นก็นำไปชั่งครั้งที่ k+1 โดย ชั่ง A1B2 เทียบกับ A2E1 - - - - - - - - - - - - - - - - - - นั่นคือ ในการชั่งครั้งที่สอง ( k =1) - - - - - - - - - A1=3^(n-2), A2=(3^(n-2)-1)/2, B1=3^(n-2), B2=(3^(n-2)-1)/2, E1=3^(n-2) ลูก - - - - - - - - - แล้วก็ ชั่ง A1B2 เทียบกับ A2E1 - - - - - - - - - - - - - > (3ก) ถ้า ทั้งสองข้างหนักเท่ากัน แสดงว่ามีลูกเบาปนอยู่ใน B1 - - - - - - - - - - - - - - - - - ก็จะกลายเป็นปัหา การชั่ง n-2 ครั้งเพื่อหาลูกเบาใน 3^(n-2) ลูก ### - - - - - - - - - - - - - > (3ข) ถ้า A1B2 หนักกว่า แสดงว่ามีลูกหนักปนอยู่ใน A1 - - - - - - - - - - - - - - - - - ก็จะกลายเป็นปัหา การชั่ง n-2 ครั้งเพื่อหาลูกหนักใน 3^(n-2) ลูก ### - - - - - - - - - - - - - > (3ค) ถ้าA2E1 หนักกว่า แสดงว่าอาจมีลูกหนักปนอยู่ใน A2 หรือ มีลูกเบาในB2 - - - - - - - - - - - - - - - - - ก็ให้กลับไปใช้ Procedure BigBaby1 อีก ### - - - - > (2ข) ถ้า หนักเท่ากัน ให้ใช้ Procedure BigBaby2(C,k) - - - - - - - - เมื่อ C แทน ลูกบอล ( 3^(n-k) - 1 )/2 ลูก ที่มีลูกผิดปกติปนอยู่หนึ่งลูก - - - - - - - - - - และให้ E1 แทน ลูกบอล 3^(n-k-1) ลูก ที่ไม่มีลูกผิดปกติปนอยู่เลย - - - - - - - - - Procedure BigBaby2(C,k) นี้ จะทำการแบ่ง C เป็นสองส่วนคือ - - - - - - - - - C1 = 3^(n-k-1) ลูก กับ C2 = ( 3^(n-k-1) - 1 )/2 ลูก - - - - - - - - - จากนั้นก็นำไปชั่งครั้งที่ k+1 โดย ชั่ง C1 เทียบกับ E1 - - - - - - - - - - - - - - - - - - นั่นคือ ในการชั่งครั้งที่สอง ( k =1) - - - - - - - - - จะชั่ง C1=3^(n-2) ลูก เทียบกับ E1=3^(n-2) ลูก - - - - - - - - - - - - - > (3a) ถ้า ทั้งสองข้างหนักเท่ากัน แสดงว่า C2 มีลูกผิดปกติปนอยู่หนึ่งลูก - - - - - - - - - - - - - - - - - ก็ให้กลับไปใช้ Procedure BigBaby2 อีก ### - - - - - - - - - - - - - > (3b) ถ้า C1 หนักกว่า แสดงว่ามีลูกหนักปนอยู่ใน C1 - - - - - - - - - - - - - - - - - ก็จะกลายเป็นปัหา การชั่ง n-2 ครั้งเพื่อหาลูกหนักใน 3^(n-2) ลูก ### - - - - - - - - - - - - - > (3c) ถ้า C1 เบากว่า แสดงว่ามีลูกเบาปนอยู่ใน C1 - - - - - - - - - - - - - - - - - ก็จะกลายเป็นปัหา การชั่ง n-2 ครั้งเพื่อหาลูกเบาใน 3^(n-2) ลูก ### แล้วก็ทำซ้ำยังงี้ไปเรื่อยๆ ก็จะสามารถทำการชั่งลูกบอล (3^n - 3)/2 ลูก n ครั้งเพื่อหาลูกที่ผิดปกติ และระบุว่าหนักหรือเบากว่าปกติได้ ด้วยวิธีการนี้ จาก ก) วิธีการแบ่งชั่งครั้งที่หนึ่งและสอง ข) Procedure BigBaby1 + วิธีการชั่งลูกบอล 3^m ลูก m ครั้ง เพื่อหาลูกที่หนัก(เบา)กว่าปกติ ค) Procedure BigBaby2 + วิธีการชั่งลูกบอล 3^m ลูก m ครั้ง เพื่อหาลูกที่หนัก(เบา)กว่าปกติ จะเห็นได้ชัดว่า ในการชั่ง n ครั้งเพื่อหาลูกที่ผิดปกติและระบุได้ด้วยว่าหนักหรือเบานั้น ใช้ได้กับลูกบอลจำนวนสูงสุด ( 3^n - 3 )/2 ลูก และถ้าหากเพิ่มลูกบอลไปอีกหนึ่งลูก กล่าวคือ เพิ่มเป็น ( 3^n - 3 )/2 +1 ลูก เราก็สามารถทำได้โดยวิธีการเดิม โดยแยกเอาลูกบอล ( 3^n - 3 )/2 ลูกมาหาก่อน ถ้าชั่งครบ n ครั้งแล้ว ไม่พบลูกผิดปกติใน ( 3^n - 3 )/2 ลูกนั้น แสดงว่า ลูกที่เหลืออีกหนึ่งลูกผิดปกติ แต่ระบุไม่ได้ว่ามันผิดปกติอย่างไร ( แต่ถ้าหาพบในการชั่ง n ครั้ง ก็จะสามารถระบุได้) สุดท้ายนี้ ขอขอบคุณที่ช่วยอ่านจนจบ :) เด็กโต(ขอบคุณครับ) (IP: NULL) ขอแสดงความนับถือ คุณพี่เด็กโตค่ะ เจ๋ง หวาน (IP: NULL) อิอิ แตงกวาทำใส่ไว้ที่นี่อ่ะค่ะ http://easybug.freeshell.org/stone.html แ ต ง ก ว า * (IP: NULL) พี่เด็กโตสุดยอดของโลก นุก Lover (IP: NULL) ปัญหาข้อนี้เป็นเรื่องเลขฐานสาม ชั่ง 1 ครั้งบอกอะไรไม่ได้ คำตอบมี (3กำลัง1 - 3)หาร2 ได้ 0 ชั่ง 2 ครั้งแยกบอลได้จาก 1ใน3 เพราะคำตอบมี (3กำลัง2 -3) หาร2 ได้ 3 ชั่ง 3 ครั้งแยกได้ 1ใน 12 เพราะ (3กำลัง3 - 3) หาร 2 ได้ 12 ชั่ง 4 ครั้งแยกได้ 1 ใน 39... ลอง12ลูกก่อน ตั้งชื่อลูกบอล ชื่อเป็นเลขนะ เรียง 1 ถึง 12 ครั้งแรก 1 2 3 4 ข้างซ้าย 5 6 7 8 ข้างขวา ครั้ง 2 1 2 5 9 ข้างซ้าย 3 6 10 11 ข้างขวา ครั้ง 3 1 5 7 10 ข้างซ้าย 2 8 11 12 ข้างขวา ผลการชั่ง ซ แปลว่า ซ้าย หนักกว่า ขวา ผลการชั่ง ข แปลว่า ขวา หนักกว่า ซ้าย ผลการชั่ง ก แปลว่า ซ้าย เท่ากับ ขวา ถ้าผลการชั่งออกมาเป็น ซซซ แปลว่า 1 หนักกว่าลูกอื่น ถ้าผลการชั่งออกมาเป็น ขขข แปลว่า 1 เบากว่าลูกอื่น ถ้าผลการชั่งออกมาเป็น ซซก แปลว่า 6 เบากว่าลูกอื่น ถ้าผลการชั่งออกมาเป็น ขขก แปลว่า 6 หนักกว่าลูกอื่น อีก 10 ลูกลองไล่ดูก็แล้วกัน เชื่อว่านักคณิตศาสตร์ทั้งหลายคงเห็นคำตอบ ครั้งแรกชั่งข้างละสามลูกก่อน -ถ้าไม่เท่ากันก็เอาข้างหนึ่งออกแล้วเอาอีก3ลูกมาชั่งด้วย ถ้าไม่เท่าอีกก็เอาออกแล้วแบ่งออกเป็น2ลูกแล้วเอาลูกปกติ2ลูกมาชั่งด้วย ถ้าไม่เท่ากันอีกก็เอามาชั่งกับลูกปกติ1ลูกถ้าไม่เท่ากันก็ไอ้ลูกนั้นแหละ -ถ้าเท่ากันก็เอาออกกลุ่มนึงแล้วทำเหมือนข้างบน ฮี่ฮิฮี่ (IP: NULL) ปัญหานี้ผมขอตอบแค่ข้อแรกนะครับ โดยปัญหาข้อนี้ผมคิดได้4ครั้ง โดยเริ่มจากแบ่งลูกบอลเป็น4ชุด ชุดละ3ลูก ชั่งที่ละ2ชุดชั่งที่ละ2ชุดก็จะเท่ากับชั่ง2ครั้ง ถ้าคู่ไหนเท่ากันก็เอามา1ชุด เอาไว้ชั่งเทียบกับอีกคู่หนึ่ง ก็เท่ากับชั่ง3ครั้ง คราวนี้เราก็จะรู้ว่าชุดแตกต่างจากชุดอื่น และรู้ว่าชุดนั้นเบากว่าหรือหนักกว่า และคราวนี้ก็แบ่งเป๊น3ลูก และชั่งอีก1ครั้งก็จะรู้ว่าลูกไหนที่แตกต่าง และรู้ด้วยว่าลูกนั้นเบากว่าหรือหนักกว่า สิทธิเสริม (IP: NULL) ชั่งเพียงครั้งเดียวเพื่อหาลูกที่แตกต่าง แบ่งลูกบอลไปชั่งข้างละ 6 ลูก ก็จะรู้ว่าด้านใดหนักหรือเบากว่า (สมมติซ้ายหนักกว่า ตาชั่งก็จะเอียงที่ด้านซ้ายเสมอ) หยิบบอลออกจากตาชั่งข้างละ 1 ลูก ถ้าตาชั่งยังเอียงอยู่ ก็แสดงว่าลูกที่แตกต่างยังอยู่บนตาชั่ง ทำเช่นเดิมจนตาชั่งทั้งสองด้านหนักเท่ากันก็จะได้ลูกที่แตกต่าง ชั่งครั้งที่ 2 เพื่อดูว่าลูกที่แตกต่างหนักหรือเบากว่าลูกอื่นๆ rehposolihp (IP:202.183.168.202) คุณ rehposolihp เสนอ idea ได้ น่าทึ่งมาก แต่คิดว่าคงจะไม่ใช่ประเด็น เพราัะทุกครั้งที่คุณเอาบอลออก มันก็คือการชั่งใหม่นั่นเอง boy (IP:131.251.0.11) ผมชั่งได้ 3 ครั้งนะ ใครชั่งได้น้อยกวานี้ ขอนับถือนะ เด็กน้อย (IP:202.133.140.164) อธิบายซะยืดยาวเชียะ แต่ก้อดีนะคับ คนนิรนามสุดหล่อ (IP:202.133.159.188,,) คงมีคนชั่งได้น้อยกว่า 3 มั้ง ........... (IP:203.151.140.120,203.113.51.5,) ที่จริงแล้วโจทย์ข้อนี้ให้ชั่งได้ 3 ครั้งให้หาว่าลูกใหนที่ไม่เท่า และบอกได้ว่าหนักกว่าหรือเบากว่า ครับคนที่ชั่งได้ 3 ครั้งช่วยอธิบายทีครับ Jackie (IP:203.188.59.63,unknown,) 1.ถ้าลูกบอลหนักต่างกันจนสามารถแยกออกได้ด้วยมือก็ไม่ต้องชั่ง ก็น่าจะประหยัดเวลา 2.ทิ้งลงน้ำดูว่าลูกไหนจมลงจากระดับสมมุติมากกว่ากัน 3.หาแฟนพันธ์แท้เครื่องชั่งมาประชันการคัดแยก ลูกชายชาวนา (IP:203.114.126.94,,) คำตอบอยู่ที่นี่แล้ว ลองมาดูกัน สามารถ หาได้ด้วยว่าลูกไหน เบา หรือ หนัก แล้วก็ชั่งเพียง 3 ครั้งเอง http://webboard.kmitnb.ac.th/viewtopic.php?t=194 ขอบคุณที่สร้างโจทย์ให้คิดสนุก (IP:203.146.104.35,unknown,) หากจะโพสต์คำตอบสำหรับกระทู้ในห้องนี้ ล๊อกอินก่อนนะคะ สมัครสมาชิก ฟรี ตลอดชีพ ที่ http://www.vcharkarn.com/my ค่ะ |
![]() บทความแนะนำBlog แนะนำHot Linksขอบคุณผู้สนับสนุน |
Copyright© 2000-2007, Vcharkarn.Com. All rights reserved.
|
คลิ๊กเพื่อดูสถิติ รับรองและสนับสนุนโดย |
![]() สสวท. |
![]() มูลนิธิ พสวท. |
![]() พสวท. |