क्विंटोपिया ने यहां बहुराष्ट्रीय गुणांकों की गणना करने के लिए एक चुनौती पोस्ट की है (कुछ पाठ यहां से कॉपी किए गए हैं)। बहुराष्ट्रीय गुणांक मॉड 2 की गणना करने के लिए एक मजेदार एल्गोरिदम है।
संख्याओं की सूची को देखते हुए, k 1 , k 2 , ..., k m , बहुराष्ट्रीय गुणांक के अवशेषों का उत्पादन करता है:
कम आधुनिक 2. निम्नलिखित कलन विधि इस कुशलता से करता है: प्रत्येक के लिए कश्मीर मैं , की बाइनरी विस्तार की गणना कश्मीर मैं , यह है कि, लगता है एक ij ऐसी है कि प्रत्येक एक ij 1 या 0 और
यदि कोई ऐसा j है जो r a s के लिए एक rj = a sj = 1 है , तो संबद्ध mod 2 बहुपद गुणांक 0 होता है, अन्यथा mod 2 बहुपद गुणांक 1 होता है।
कार्य
एक प्रोग्राम या फ़ंक्शन लिखिए जो m नंबर लेता है , k 1 , k 2 , ..., k m , और आउटपुट या संबंधित बहुराष्ट्रीय गुणांक लौटाता है। आपका कार्यक्रम वैकल्पिक रूप से लग सकता है मी एक अतिरिक्त तर्क के रूप में अगर जरूरत हो।
इन नंबरों को किसी भी प्रारूप में पसंद किया जा सकता है, उदाहरण के लिए सूचियों में बांटा गया है या एकात्मक, या कुछ और में एन्कोड किया गया है, जब तक कि बहुराष्ट्रीय गुणांक की वास्तविक गणना आपके कोड द्वारा की जाती है, और एन्कोडिंग प्रक्रिया नहीं।
यदि बहुराष्ट्रीय गुणांक विषम है और बहुराष्ट्रीय गुणांक सम है तो आउटपुट किसी भी सत्य मान का हो सकता है।
बहु-आयामी गुणांक की गणना करने के लिए डिज़ाइन किए गए अंतर्निहित इंस की अनुमति नहीं है।
मानक खामियां लागू होती हैं।
स्कोरिंग
यह कोड गोल्फ है: बाइट्स जीत में सबसे छोटा समाधान।
उदाहरण:
7, 16 और 1000 के बहुपद गुणांक को खोजने के लिए, हम उनमें से प्रत्येक का बाइनरी विस्तार करते हैं:
चूंकि किसी भी कॉलम में 1 से अधिक नहीं है, इसलिए बहुराष्ट्रीय गुणांक विषम है, और इसलिए हमें कुछ सत्य का उत्पादन करना चाहिए।
7, 16 और 76 के बहुपद गुणांक को खोजने के लिए, हम उनमें से प्रत्येक का बाइनरी विस्तार करते हैं:
चूंकि 76 और 7 दोनों में उनके द्विआधारी विस्तार में 4 है, इसलिए बहुराष्ट्रीय गुणांक समान है और इसलिए हम एक गलत मूल्य का उत्पादन करते हैं।
परीक्षण के मामलों:
Input: [2, 0, 1]
Output: Truthy
Input: [5,4,3,2,1]
Output: Falsey
Input: [1,2,4,8,16]
Output: Truthy
Input: [7,16,76]
Output: Falsey
Input: [7,16,1000]
Output: Truthy
Input: [545, 1044, 266, 2240]
Output: Truthy
Input: [1282, 2068, 137, 584]
Output: Falsey
Input: [274728976, 546308480, 67272744, 135004166, 16790592, 33636865]
Output: Truthy
Input: [134285315, 33849872, 553780288, 544928, 4202764, 345243648]
Output: Falsey
==
समानता के लिए कई भाषाओं के साथ एक बाइट बचाई जा सकती है अगर सत्य और असत्य को फ़्लिप करने दिया जाए।