คำอธิบายปัญหาโดยย่อ
เขียนโปรแกรมเพื่อค้นหาระยะห่างต่ำสุดระหว่างจุดสองจุดที่เดินทางบนแสงที่เปล่งออกมาจากแหล่งกำเนิดและวงกลมที่อยู่กึ่งกลางแหล่งกำเนิด
คำอธิบายของสถ
ทีนี้ลองจินตนาการว่าเราอยู่บนเครื่องบินและบนเครื่องบินนี้เราได้รับอนุญาตให้เดินทางด้วยวิธีพิเศษเท่านั้น เราได้รับอนุญาตให้เดินทางกับรังสีใด ๆ ที่เล็ดลอดออกมาจากแหล่งกำเนิด
เราสามารถเดินทางบนวงกลมใดก็ได้ที่อยู่ตรงกลางเป็นวงกลม
ตอนนี้เป้าหมายของเราคือการเดินทางจากจุดหนึ่งบนเครื่องบินลำนี้ไปอีกจุดหนึ่ง อย่างไรก็ตามเราไม่สามารถเดินทางในเส้นทางแบบยุคลิดอย่างง่ายเราสามารถทำสิ่งนี้ได้ก็ต่อเมื่อจุดที่เกิดขึ้นตกกระทบกับรังสีจากจุดศูนย์กลาง
เราสามารถเดินทางกับอันนี้เพราะมันตกอยู่บนหนึ่งในรังสีของเรา
นอกจากนี้เรายังสามารถเดินทางบนวงกลมที่มีศูนย์กลางที่จุดกำเนิด
ตัวอย่าง
นี่คือความท้าทาย:
เราต้องได้จากจุดหนึ่งไปอีกจุดหนึ่งในเส้นทางที่สั้นที่สุด; บ่อยครั้งที่นี่คือการรวมกันของการเดินทางในวงกลมและรังสี
อย่างไรก็ตามนี่มันอาจเดินทางด้วยรังสีสองดวง
บางครั้งมีสองเส้นทางที่เดินทางในระยะทางต่ำสุด
ปัญหา
ความท้าทายของคุณคือการเขียนโปรแกรมที่เมื่อได้รับสองคะแนนจะให้ระยะห่างขั้นต่ำระหว่างพวกเขาหากเราปฏิบัติตามกฎเหล่านี้ อินพุตสามารถกำหนดได้ทั้งในรูปแบบสี่เหลี่ยมหรือโพลาร์และเอาต์พุตควรเป็นหนึ่งหมายเลขคือระยะห่างระหว่าง
กรณีทดสอบ
(พร้อมอินพุตสี่เหลี่ยมผืนผ้า)
(1,1) (1,-1) -> ~ 2.22144
(0,0) (1, 1) -> ~ 1.41421
(1,0) (-0.4161 , 0.90929) -> ~ 2
(1,1) (1, 0) -> ~ 1.19961
(1,2) (3, 4) -> ~ 3.16609