ปัญหา:
ให้คะแนนที่ไม่ว่างเปล่าในระนาบคาร์ทีเซียนหาวงกลมที่เล็กที่สุดที่ล้อมรอบพวกมันทั้งหมด ( ลิงค์ Wikipedia )
ปัญหานี้เล็กน้อยถ้าจำนวนคะแนนเป็นสามหรือน้อยกว่า (ถ้ามีจุดหนึ่งวงกลมจะมีรัศมีเป็นศูนย์ถ้ามีสองจุดส่วนของเส้นตรงที่รวมจุดนั้นคือเส้นผ่านศูนย์กลางของวงกลมถ้ามี จุดสามจุด (ไม่ใช่เครื่องหมาย colinear) เป็นไปได้ที่จะได้รับสมการของวงกลมที่สัมผัสได้ทั้งหมดหากพวกมันเป็นรูปสามเหลี่ยมที่ไม่เป็นปมหรือวงกลมที่สัมผัสเพียงสองจุดและล้อมรอบที่สามหากสามเหลี่ยมนั้นเป็นรูปสามเหลี่ยม ดังนั้นเพื่อความท้าทายนี้จำนวนคะแนนควรมากกว่าสาม
ความท้าทาย:
- อินพุต:รายการของจุดที่ไม่ใช่ colinear 4 จุดขึ้นไป คะแนนควรมีพิกัด X และ Y พิกัดสามารถลอยได้ เพื่อบรรเทาความท้าทายไม่ควรมีสองจุดที่ใช้ร่วมกันพิกัด X เดียวกัน
ตัวอย่างเช่น:[(0,0), (2,1), (5,3), (-1,-1)]
- เอาท์พุท: tuple ของค่า
(h,k,r)
เช่นนั้นเป็นสมการของวงกลมที่เล็กที่สุดที่ล้อมรอบทุกจุด
กฎ:
- คุณสามารถเลือกวิธีการป้อนข้อมูลใดก็ได้ที่เหมาะกับโปรแกรมของคุณ
- ควรพิมพ์ผลลัพธ์ไปยัง
STDOUT
หรือส่งคืนโดยฟังก์ชัน - ต้องการภาษา "ปกติ" ทั่วไปใช้ภาษาได้ แต่ภาษาเอสแตงใดก็ได้
- คุณสามารถสันนิษฐานได้ว่าคะแนนนั้นไม่ได้ colinear
- นี่คือโค้ดกอล์ฟดังนั้นโปรแกรมที่เล็กที่สุดในหน่วยไบต์ชนะ ผู้ชนะจะได้รับการคัดเลือกหนึ่งสัปดาห์หลังจากการโพสต์ความท้าทาย
- โปรดรวมภาษาที่คุณใช้และความยาวเป็นไบต์เป็นส่วนหัวในบรรทัดแรกของคำตอบของคุณ:
# Language: n bytes
- โปรดรวมภาษาที่คุณใช้และความยาวเป็นไบต์เป็นส่วนหัวในบรรทัดแรกของคำตอบของคุณ:
กรณีทดสอบ:
- 1:
- การป้อนข้อมูล:
[(-8,0), (3,1), (-6.2,-8), (3,9.5)]
- เอาท์พุท:
[-1.6, 0.75, 9.89]
- การป้อนข้อมูล:
- 2:
- การป้อนข้อมูล:
[(7.1,-6.9), (-7,-9), (5,10), (-9.5,-8)]
- เอาท์พุท:
[-1.73, 0.58, 11.58]
- การป้อนข้อมูล:
- 3:
- การป้อนข้อมูล:
[(0,0), (1,2), (3,-4), (4,-5), (10,-10)]
- เอาท์พุท:
[5.5, -4, 7.5]
- การป้อนข้อมูล:
- 4:
- การป้อนข้อมูล:
[(6,6), (-6,7), (-7,-6), (6,-8)]
- เอาท์พุท:
[0, -0.5, 9.60]
- การป้อนข้อมูล:
กอล์ฟมีความสุข !!!