द्वि-आयामी विमान पर 5 अलग-अलग बिंदुओं को देखते हुए, अंकों द्वारा गठित शंकु अनुभाग का प्रकार निर्धारित करें। उत्पादन में से एक होगा circle, hyperbola, ellipse, या parabola।
नियम
- अंक सामान्य रैखिक स्थिति में होंगे, जिसका अर्थ है कि कोई भी तीन अंक आपस में नहीं मिलते हैं, और इस प्रकार उनके माध्यम से गुजरने वाला शंकु अद्वितीय होगा।
- 5 बिंदुओं के निर्देशांक -10 और 10, समावेशी के बीच दशमलव संख्या होंगे।
- दशमलव / फ्लोट मानों की सटीकता आपकी भाषा के मूल फ्लोट / दशमलव प्रकार की सटीकता होनी चाहिए। यदि आपकी भाषा / डेटा प्रकार मनमानी-सटीक है, तो आप दशमलव बिंदु के बाद अधिकतम आवश्यक परिशुद्धता के रूप में शून्य (जैसे
1.0000000000005 == 1.000000000000) की ओर बढ़ते हुए 12 अंकों का उपयोग कर सकते हैं । - आउटपुट का कैपिटलाइज़ेशन मायने नहीं रखता।
- शंकुधारी
ellipseअनुभाग वास्तव में एक सर्कल में आउटपुट की अनुमति नहीं है। सभी मंडलियां दीर्घवृत्त हैं, लेकिन आपको सबसे विशिष्ट एक का उत्पादन करना होगा।
फ़्लोटिंग पॉइंट गलतियाँ और सटीकता पर:
मैं इसे जितना संभव हो उतना सरल बनाने की कोशिश कर रहा हूं, ताकि फ्लोटिंग पॉइंट की अशुद्धि वाले मुद्दे रास्ते में न आएं। लक्ष्य है, यदि फ्लोट / डबल के बजाय डेटा प्रकार "जादुई अनंत सटीक मूल्य" था, तो सब कुछ पूरी तरह से काम करेगा। लेकिन, चूंकि "जादुई अनंत सटीक मूल्य" मौजूद नहीं है, आप ऐसा कोड लिखते हैं जो मानता है कि आपके मूल्य अनंत सटीक हैं, और फ़्लोटिंग पॉइंट अशुद्धि के परिणामस्वरूप होने वाले किसी भी मुद्दे की विशेषताएं हैं, बग नहीं।
परीक्षण के मामलों
(0, 0), (1, 5), (2, 3), (4, 8), (9, 2) => hyperbola
(1.2, 5.3), (4.1, 5.6), (9.1, 2.5), (0, 1), (4.2, 0) => ellipse
(5, 0), (4, 3), (3, 4), (0, 5), (0, -5) => circle
(1, 0), (0, 1), (2, 1), (3, 4), (4, 9) => parabola
circleएक बहुत ही गोल दीर्घवृत्त से अलग करने के लिए फ्लोट समानता की जाँच करने की आवश्यकता होती है। हमें यहाँ क्या सटीकता चाहिए?