मदद! मेरी गणित की परीक्षा जल्द ही आ रही है और मैंने पढ़ाई नहीं की! 1 परीक्षा का एक हिस्सा अपने चतुर्भुज निर्देशांक को देखते हुए चतुर्भुज को वर्गीकृत करना है, जो कि, दुर्भाग्य से, मुझे नहीं पता कि कैसे करना है। 2
तो, आपकी चुनौती मेरे लिए ऐसा करने के लिए एक कार्यक्रम लिखने की है ताकि मैं असफल न होऊं!
चुनौती
चार वर्टिकल को देखते हुए कि उनमें से कोई भी तीन कोलीनियर नहीं हैं, उन चार सिरों द्वारा गठित चतुर्भुज का सबसे विशिष्ट वर्गीकरण निर्धारित करते हैं।
"सबसे विशिष्ट वर्गीकरण" से मेरा तात्पर्य यह है कि भले ही सभी वर्ग आयताकार हों, यदि आकृति एक वर्ग है, तो आपको संकेत देना चाहिए कि यह एक वर्ग है और यह संकेत नहीं देता है कि यह एक आयत है।
इनपुट
इनपुट चार (x, y) निर्देशांक के रूप में दिया जाएगा। आप इन्हें सूची 4 की लंबाई / लंबाई के tuples 2 की सूची के रूप में ले सकते हैं। वैकल्पिक रूप से, आप x- निर्देशांक और संबंधित y-निर्देशांक की सूची के रूप में इनपुट ले सकते हैं।
उदाहरण के लिए, अगर मेरे आकार बिंदुओं पर कोने है (0, 0), (5, 0), (6, 1), और (1, 1), आप निम्न स्वरूपों या कुछ इसी तरह से किसी में इनपुट लेने के लिए चुन सकते हैं:
[(0, 0), (5, 0), (6, 1), (1, 1)]
([0, 5, 6, 1], [0, 0, 1, 1])
आप मान सकते हैं कि चतुर्भुज स्व-प्रतिच्छेदन नहीं है और यह कि अंक सही क्रम में दिए गए हैं (यानी इनपुट में दो लगातार बिंदु चतुर्भुज में एक लाइन खंड से जुड़े होंगे)।
उत्पादन
आपको निम्न वर्ग के प्रत्येक वर्ग के लिए एक अद्वितीय आउटपुट की आवश्यकता होगी:
- वर्ग
- आयत
- विषमकोण
- चतुर्भुज
- चतुर्भुज / समलंब
- पतंग
- चतुष्कोष
यह सटीक नाम ही हो सकता है, एक चरित्र, एक पूर्णांक, आदि।
नियम
- स्टैंडर्ड लोफॉल्स लागू होते हैं
- यदि आपकी प्रोग्रामिंग लैंग्वेज में बिल्ट-इन है, तो यह सटीक कार्य करेगा, बिल्ट-इन की अनुमति नहीं है।
- दो बिंदुओं के बीच की दूरी को खोजने के लिए अंतर्निहित इंसिडेंट की अनुमति है।
- दो लाइनों के बीच के कोण को खोजने के लिए बिल्ट-इन की अनुमति है।
इस बिंदु पर, यदि आप सभी शर्तों को जानते हैं, तो आप प्रोग्रामिंग शुरू करने के लिए तैयार हैं! (टेस्ट के मामले अंत में हैं)
शब्दावली
यह खंड किसी के लिए भी है जिसे विभिन्न आकृतियों की परिभाषाओं पर स्पष्टीकरण की आवश्यकता है।
वर्ग
एक चतुर्भुज एक वर्ग है यदि और केवल यदि इसके सभी 4 पक्ष लंबाई में समान हैं और आस-पास के प्रत्येक जोड़े लंबवत हैं (अर्थात, यह एक आयत और एक रंबल दोनों है)।
आयत
एक चतुर्भुज एक आयत है अगर और केवल अगर आसन्न पक्षों के प्रत्येक जोड़ी लंबवत है।
विषमकोण
एक चतुर्भुज एक समचतुर्भुज है अगर और केवल यदि इसके सभी 4 पक्ष समान हैं।
चतुर्भुज
एक चतुर्भुज एक समांतर चतुर्भुज है यदि और केवल यदि विपरीत पक्षों की प्रत्येक जोड़ी समानांतर है और विपरीत कोणों की प्रत्येक जोड़ी समान है। ये दोनों स्थितियाँ एक-दूसरे को प्रभावित करती हैं, इसलिए आपको केवल उनमें से किसी एक की जाँच करनी होगी।
चतुर्भुज / समलंब
एक चतुर्भुज एक समलम्बाकार / समलम्बाकार है अगर और केवल अगर इसमें समानांतर पक्षों की कम से कम एक जोड़ी है।
पतंग
एक चतुर्भुज एक पतंग है अगर आसन्न पक्षों के दो विपरीत जोड़े लंबाई में समान हैं; अर्थात् इसके दो आसन्न भुजाएँ समान हैं और अन्य दो भी समान हैं।
परीक्षण के मामलों
input as (x, y) * 4 -> full name
[(0, 0), (1, 0), (1, 1), (0, 1)] -> square
[(0, 0), (1, 1), (-1, 3), (-2, 2)] -> rectangle
[(0, 0), (5, 0), (8, 4), (3, 4)] -> rhombus
[(0, 0), (5, 0), (6, 1), (1, 1)] -> parallelogram
[(0, 0), (4, 0), (3, 1), (1, 1)] -> trapezoid/trapezium
[(0, 0), (1, 1), (0, 3), (-1, 1)] -> kite
[(0, 0), (2, 0), (4, 4), (0, 1)] -> quadrilateral
लिंक (डेसमोस ग्राफिंग कैलकुलेटर)
यहां प्रत्येक परीक्षण मामलों के विज़ुअलाइज़ेशन के लिंक दिए गए हैं।
स्क्वायर
आयत
Rhombus
Parallelogram
Trapezoid / Trapezium
पतंग
चतुर्भुज
जीत का मानदंड
मैं स्पष्ट रूप से परीक्षा में एक कंप्यूटर नहीं ला सकता हूं, इसलिए मुझे आपको सबसे छोटा कोड लिखना होगा ताकि मैं इसे याद कर सकूं। मुझे इसे हाशिये में लिखने और इसे TryItOffline TM का उपयोग करके चलाने की आवश्यकता है ताकि इसे हाशिये में फिट करने के लिए आपके कार्यक्रम को यथासंभव छोटा होना चाहिए!
1 बेशक मैंने वास्तव में किया था: P
2 बेशक मैं वास्तव में करता हूं: P