यह चुनौती एक प्रोग्रामिंग ब्लॉग मैं अक्सर से प्रेरित थी। कृपया यहां मूल पोस्ट देखें: एक प्रोग्रामिंग पहेली
चुनौती
एक फ़ंक्शन को परिभाषित करें f:Q->Q
जैसे कि f(f(n)) = -n
सभी गैर-शून्य पूर्णांक n
, और जहां Q
तर्कसंगत संख्याओं का सेट है।
विवरण
जो कुछ भी आपकी पसंदीदा भाषा में, परिभाषित कृपया एक समारोह या कार्यक्रम f
कि पैरामीटर के रूप में स्वीकार करता है एक नंबर n
और रिटर्न या आउटपुट एक नंबर f(n)
।
जो भी तंत्र आपकी भाषा के लिए सबसे स्वाभाविक है, इनपुट प्रदान किया जा सकता है: फ़ंक्शन तर्क, STDIN, कमांड लाइन तर्क, स्टैक स्थिति, वॉइस इनपुट, गिरोह के संकेत, आदि से पढ़ें।
आउटपुट किसी फ़ंक्शन / प्रोग्राम से रिटर्न वैल्यू होना चाहिए या STDOUT में प्रिंट होना चाहिए।
मैं उन कार्यों के उत्तरों को प्रतिबंधित करना चाहूंगा जो प्रोग्राम स्टेट या वैश्विक मेमोरी / डेटा का लाभ नहीं लेते हैं जो फ़ंक्शन के बाहर से दिखाई देते हैं f
। उदाहरण के लिए, उस काउंटर के बाहर एक काउंटर रखना f
कितनी बार f
कॉल किया गया था और सिर्फ इस गिनती के आधार पर एक नेगेटिव करना किसी के लिए बहुत चुनौतीपूर्ण या दिलचस्प नहीं है। निर्णय f
केवल f
लेशिकल स्कोप के भीतर डेटा पर निर्भर होना चाहिए ।
हालांकि, यह प्रतिबंध कुछ स्टैक-ओरिएंटेड भाषाओं या अन्य प्रकार की भाषाओं के लिए संभवतः अनुचित है जो इस प्रकार के डेटा या स्कोप को अलग नहीं करते हैं। कृपया इस चुनौती की भावना के साथ अपने सर्वोत्तम निर्णय का उपयोग करें।
स्कोरिंग
सामान्य कोड गोल्फ नियम लागू होते हैं- आपका स्कोर आपके स्रोत कोड में बाइट्स की संख्या है ।
न्यूनतम उत्तर के लिए डोमेन और कोडोमैन की आवश्यकता होती f
है जो तर्कसंगत के एक सबसेट के रूप में होता है Q
। यदि आप अपने डोमेन और कोडन f
को पूर्णांकों तक सीमित रखते हैं Z
, तो आपका स्कोर आपके स्रोत कोड में 90% बाइट्स की संख्या की सीमा है ।
बराबर का अवसर
एक टाई की स्थिति में, निम्नलिखित का उपयोग क्रम में किया जाएगा:
- आपके स्रोत कोड में मुद्रण योग्य गैर-व्हाट्सएप प्रतीकों की सबसे कम संख्या
- उत्तर प्रस्तुत करने की प्रारंभिक तिथि और समय
संपादित करें
आपको मनमाने ढंग से संख्याओं का समर्थन करने की आवश्यकता नहीं है। कृपया अपनी चुनी हुई भाषा (आमतौर पर पूर्णांक और फ्लोटिंग पॉइंट, क्रमशः) में सेट Z
और Q
डेटाटाइप्स के रूप में व्याख्या करें ।
यदि आपका समाधान पूरी तरह से डेटा संरचना के अंतर्निहित ढांचे या बिट पैटर्न पर निर्भर करता है, तो कृपया इसकी सीमाओं और इसका उपयोग कैसे किया जा रहा है, इसका वर्णन करें।
f:Q->Q
इसका मतलब बता सकते हैं ?
f
है कि Q
अन्य सदस्यों (संभवतः उसी के) के लिए (तर्कसंगत संख्या) के सदस्यों की एक मैपिंग है Q
। देख en.wikipedia.org/wiki/Function_(mathematics)#Notation