ฉันมีคำถาม,
เมื่อพิจารณาจากชุดของคะแนน คุณจะวางจุดโดยมีข้อจำกัดว่าระยะทางไปยังจุดที่ไกลที่สุดนั้นน้อยที่สุดเท่าที่จะเป็นไปได้ได้อย่างไร
ข้อมูลนี้อ้างอิงถึงปัญหานี้ ฉันไม่รู้ว่าจะต้องดำเนินการอย่างไร พอยน์เตอร์บางคนบ้างไหม?
ขอบคุณ
ฉันมีคำถาม,
เมื่อพิจารณาจากชุดของคะแนน คุณจะวางจุดโดยมีข้อจำกัดว่าระยะทางไปยังจุดที่ไกลที่สุดนั้นน้อยที่สุดเท่าที่จะเป็นไปได้ได้อย่างไร
ข้อมูลนี้อ้างอิงถึงปัญหานี้ ฉันไม่รู้ว่าจะต้องดำเนินการอย่างไร พอยน์เตอร์บางคนบ้างไหม?
ขอบคุณ
ตรวจสอบหน้านี้ โดยจะอธิบายวิธีการต่างๆ มากมายในการทำเช่นนี้ http://www.personal.kent.edu/~rmuhamma/Compgeometry/MyCG/CG-Applets/Center/centercli.htm
ในกรณีที่ลิงก์ด้านบนเสีย นี่คือส่วนที่เกี่ยวข้องซึ่งอธิบายวิธีการที่ตรงไปตรงมาที่สุด:
อัลกอริธึมเวลา O(n2)
ในขั้นนี้ เราจะสร้างวงกลม C ซึ่งผ่านจุดสองจุดขึ้นไปของเซตที่กำหนด ถ้าวงกลมมีช่วงเวลา (ช่วงไร้จุด) ของส่วนโค้งที่มากกว่าครึ่งหนึ่งของเส้นรอบวงของวงกลมที่ไม่มีจุดอยู่ วงกลมก็สามารถทำให้เล็กลงได้ ให้ D และ E เป็นจุดสิ้นสุดของช่วงไร้จุดนี้ ขณะที่ให้ D และ E อยู่บนขอบเขตของวงกลม ให้ลดเส้นผ่านศูนย์กลางของวงกลมลงจนกว่าเราจะได้กรณี (a) หรือกรณี (b)
Another page here, with a sample applet: http://www.sunshine2k.de/stuff/Java/Welzl/Welzl.html
คุณต้องใช้ แผนภาพ Voronoi ซึ่งอาจเป็นแผนภาพ Voronoi จุดที่ไกลที่สุด โดยที่ระนาบถูกแบ่งออก ไปสู่ภูมิภาคต่างๆ โดยจุดในภูมิภาคเดียวกันจะมีจุดที่ไกลที่สุดเท่ากัน
อัปเดต
คุณต้องสร้างแผนภาพโวโรโนอิจุดที่ไกลที่สุดก่อน ซึ่งก็คือเวลา O(nlogn) และค้นหาจุดศูนย์กลางของวงกลมที่เล็กที่สุดในบรรดาจุดยอดทั้งหมด (หากวงกลมถูกกำหนดด้วยจุดสามจุด) และขอบทั้งหมด (หากเป็นวงกลม กำหนดไว้สองจุด) ความซับซ้อนของเวลาโดยรวมของแนวทางนี้คือ O(nlogn)
ฉันเพิ่งเห็นหน้าวิกิ ปัญหาวงกลมที่เล็กที่สุด ดูเหมือนว่าจะมี O(n ) อัลกอริธึมเวลา คุณสามารถตรวจสอบได้ว่าคุณสนใจเรื่องความเร็วหรือไม่ ไม่อย่างนั้นก็ไม่เป็นไร
smallest circle
น่าจะเป็นการเริ่มต้นที่ดีทีเดียว - person Jerry Coffin   schedule 03.07.2012