यहाँ आपके लिए एक भ्रामक चुनौतीपूर्ण ज्यामिति पहेली है!
किसी मंडली A
और n
अन्य मंडलियों को देखते हुए B[n]
, उसके भीतर मौजूद कुल क्षेत्रफल को खोजें, A
जो किसी भी घेरे के भीतर नहीं है B
।
आपका कोड यथासंभव छोटा होना चाहिए।
इनपुट
आपके इनपुट में निम्नलिखित जानकारी होनी चाहिए:
- वृत्त की त्रिज्या का प्रतिनिधित्व करने के लिए एक अस्थायी-बिंदु संख्या
A
। - में वृत्त की त्रिज्या का प्रतिनिधित्व करने के लिए फ्लोटिंग-पॉइंट नंबरों की एक सूची
B
। - मंडलियों के केंद्रों की एक सूची
B
। आपका कार्यक्रम ध्रुवीय या कार्टेशियन निर्देशांक में केंद्रों की अपेक्षा कर सकता है। - वैकल्पिक रूप से, आपको
n
B में मंडलियों की संख्या प्राप्त हो सकती है। इस इनपुट की आवश्यकता नहीं है।
यह माना जाएगा कि वृत्त A
का केंद्र मूल है, अर्थात, बिंदु (0, 0)
।
यह गारंटी दी जाती है कि कोई भी दो वृत्त B
समान नहीं हैं, लेकिन यह गारंटी नहीं है कि: सभी वृत्त B
खंड A
, सभी केंद्र B
बाहर हैं A
, या कोई भी दो वृत्त B
एक-दूसरे को नहीं काटते हैं। सुनिश्चित करें कि आपका समाधान विभिन्न किनारे के मामलों को संभाल सकता है।
आप किसी भी क्रम में इनपुट प्राप्त कर सकते हैं, और पाठ इनपुट के रूप में (स्टडिन या आपकी भाषा के समकक्ष के माध्यम से), फ़ंक्शन पैरामीटर, या कमांड-लाइन तर्क।
यदि आप पाठ इनपुट प्राप्त करना चुनते हैं, तो इनपुट के टुकड़ों के बीच एक या दो-चरित्र मुद्रण योग्य ASCII सीमांकक होना चाहिए।
उत्पादन
आपके प्रोग्राम या फंक्शन को किसी भी फ्लोटिंग-पॉइंट नंबर को आउटपुट करना चाहिए, जिसमें A
से किसी भी सर्कल के भीतर के कुल क्षेत्र का प्रतिनिधित्व नहीं करना चाहिए B
। आपके उत्तर सभी परीक्षण मामलों के लिए कम से कम तीन महत्वपूर्ण आंकड़ों के लिए सटीक होना चाहिए।
सामान्य कोड-गोल्फ नियम लागू होते हैं।
आपका समाधान किसी क्षेत्र को निर्धारित करने के लिए मंडलियों के भीतर नमूना बिंदुओं पर निर्भर नहीं होना चाहिए।
बिल्ट-इन जो स्वचालित रूप से हलकों के चौराहों का पता लगाता है, हलकों के चौराहों के भीतर के क्षेत्रों का पता लगाता है, या इस समस्या को तुरंत हल कर देता है।
परीक्षण के मामलों
प्रत्येक छवि में, चक्र A
को नीले रंग में रेखांकित किया गया है, B
हरे और भरे हुए काले रंग में हलकों के साथ । जो क्षेत्र वापस किया जाना चाहिए, वह लाल रंग से भरा हुआ है।
( मेरे समाधानों की जाँच के लिए रेनर पी। का विशेष धन्यवाद )
टेस्ट केस 1:
A = {x: 0, y: 0, rad: 50}
B[0] = {x: 0, y: 0, rad: 100}
Result: 0.00
टेस्ट केस 2:
A = {x: 0, y: 0, rad: 100.000000}
B[0] = {x: 100.000000, y: 0.000000, rad: 50.000000}
B[1] = {x: 30.901699, y: -95.105652, rad: 50.000000}
B[2] = {x: -80.901699, y: -58.778525, rad: 50.000000}
B[3] = {x: -80.901699, y: 58.778525, rad: 50.000000}
B[4] = {x: 30.901699, y: 95.105652, rad: 50.000000}
Result: 1.3878e+04
टेस्ट केस 3:
A = {x: 0, y: 0, rad: 138}
B[0] = {x: 100, y: 0, rad: 100}
B[1] = {x: -50, y: -86, rad: 100}
B[2] = {x: -93, y: 135, rad: 50}
Result: 1.8969e+04
टेस्ट केस 4:
A = {x: 0, y: 0, rad: 121.593585}
B[0] = {x: 81.000000, y: 107.000000, rad: 59.841457}
B[1] = {x: -152.000000, y: -147.000000, rad: 50.000000}
B[2] = {x: 43.000000, y: -127.000000, rad: 105.118980}
B[3] = {x: 0.000000, y: -72.000000, rad: 57.870545}
B[4] = {x: -97.000000, y: -81.000000, rad: 98.488578}
B[5] = {x: -72.000000, y: 116.000000, rad: 66.468037}
B[6] = {x: 2.000000, y: 51.000000, rad: 50.000000}
Result: 1.1264e+04
टेस्ट केस 5:
A = {x: 0, y: 0, rad: 121.605921}
B[0] = {x: 0.000000, y: -293.000000, rad: 250.000000}
B[1] = {x: 0.000000, y: -56.000000, rad: 78.230429}
B[2] = {x: 0.000000, y: -102.000000, rad: 100.000000}
Result: 2.6742e+04
सुझाया गया पढ़ना:
Fewell, MP "तीन सर्किलों के सामान्य ओवरलैप का क्षेत्र।" 2006 अक्टूबर। वेब। http://dspace.dsto.defence.gov.au/dspace/bitstream/1947/4551/4/DSTO-TN-0722.PR.pdf ।
B
दूसरा शामिल है। वह जोड़ने लायक हो सकता है।
1.8970e+04
।
B[0] - A intersection: 20653.659515
, B[1] - A intersection: 20757.824115
, B[1] - B[0] intersection: 1841.847766
, B[2] - A intersection: 1289.164541
, जो पैदावार 18969.69009
जवाब के रूप में।