चुनौती
मैं आपके सामने एक और जासूस बनाम जासूस चुनौती पेश करने वाला पटाखे बनाम पटाखे। इस मामले में, हालांकि, संरक्षित किया जाने वाला डेटम एक इनपुट नहीं बल्कि एक आउटपुट है ।
चुनौती के नियम सरल हैं। निम्नलिखित विनिर्देशों के साथ एक दिनचर्या लिखें:
- दिनचर्या किसी भी भाषा में लिखी जा सकती है लेकिन 320 बाइट्स से अधिक नहीं हो सकती है।
- दिनचर्या को इनपुट के रूप में तीन 32-बिट हस्ताक्षरित पूर्णांक को स्वीकार करना चाहिए। यह एक फ़ंक्शन का रूप ले सकता है जो 3 तर्कों को स्वीकार करता है, एक फ़ंक्शन जो एक एकल 3-तत्व सरणी को स्वीकार करता है, या एक पूर्ण प्रोग्राम जो किसी भी मानक इनपुट से 3 पूर्णांक पढ़ता है।
- रूटीन को एक हस्ताक्षरित 32-बिट पूर्णांक आउटपुट करना होगा।
- सभी संभावित इनपुट्स पर, रूटीन को 2 और 1000 (समावेशी) अद्वितीय मानों के बीच आउटपुट होना चाहिए। एक रूटीन आउटपुट के अनूठे मूल्यों की संख्या को इसकी कुंजी कहा जाता है ।
एक उदाहरण के रूप में, सी कार्यक्रम
int foo( int i1, int i2, int i3 ) {
return 20 + (i1^i2^i3) %5;
}
, 9 की एक प्रमुख है क्योंकि यह (उम्मीद) कर सकते हैं केवल उत्पादन नौ मूल्यों 16
, 17
, 18
, 19
, 20
, 21
, 22
, 23
, और 24
।
कुछ अतिरिक्त सीमाएँ इस प्रकार हैं:
- नियमित रूप से पूरी तरह से नियतात्मक और समय-अपरिवर्तनीय होना चाहिए, समान इनपुट के लिए समान आउटपुट लौटाता है। दिनचर्या को छद्म आयामी संख्या जनरेटर के लिए कोई कॉल नहीं करना चाहिए।
- दिनचर्या "छिपी हुई चर" जैसे कि फाइलों, सिस्टम चर, या गूढ़ भाषा सुविधाओं में डेटा पर निर्भर नहीं हो सकती है। उदाहरण के लिए, रूटीन को आमतौर पर स्थिरांक का उल्लेख नहीं करना चाहिए जब तक कि कोड में खुद को स्पष्ट रूप से परिभाषित नहीं किया जाता है। कंपाइलर क्वर्की पर निर्भर रहने वाले रूटीन, गणितीय रूप से अपरिभाषित संचालन से उत्पन्न आउटपुट, अंकगणितीय त्रुटियां, आदि भी दृढ़ता से हतोत्साहित होते हैं। जब संदेह हो, तो कृपया पूछें।
- आप (कोडर) को यह जरूर पता होना चाहिए कि रूटीन कितने अनूठे आउटपुट का उत्पादन कर सकता है, और कम से कम एक इनपुट अनुक्रम प्रदान करने में सक्षम होना चाहिए जो इसके आउटपुट का उत्पादन करता है। (चूंकि संभावित रूप से सैकड़ों अद्वितीय आउटपुट हो सकते हैं, यह सेट केवल उस स्थिति में अनुरोध किया जाएगा जब आपकी कुंजी प्रतियोगिता में है।)
चूंकि यह समस्या पिछले एक की तुलना में शास्त्रीय एन्क्रिप्शन से बहुत कम समानता रखती है, मुझे उम्मीद है कि यह व्यापक दर्शकों के लिए सुलभ होगा।
जितना रचनात्मक, उतना बेहतर।
स्कोरिंग
सबसे कम गैर-क्रैक सबमिशन (एस) प्रति बाइट काउंट को विजेता घोषित किया जाएगा।
यदि कोई भ्रम है, तो कृपया बेझिझक पूछें या टिप्पणी करें।
द काउंटर-चैलेंज
सभी पाठकों, जिनमें उन लोगों ने भी अपनी दिनचर्या प्रस्तुत की है, उन्हें "दरार" प्रस्तुत करने के लिए प्रोत्साहित किया जाता है। जब संबंधित कुंजी अनुभाग में इसकी कुंजी पोस्ट की जाती है तो एक सबमिशन क्रैक किया जाता है। यदि सबमिशन संशोधित या क्रैक किए बिना 72 घंटे तक रहता है, तो इसे "सुरक्षित" माना जाता है और इसे क्रैक करने में किसी भी बाद की सफलता को प्रतियोगिता के लिए नजरअंदाज कर दिया जाएगा।
प्रति पाठक प्रति प्रस्तुत केवल एक खुर की कोशिश की अनुमति है। उदाहरण के लिए, यदि मैं उपयोगकर्ता X को प्रस्तुत करता हूं: "आपकी कुंजी 20 है" और मैं गलत हूं, तो उपयोगकर्ता X मेरे अनुमान को गलत बता देगा और मैं अब उस सबमिशन के लिए अतिरिक्त अनुमान प्रस्तुत नहीं कर पाऊंगा।
क्रैक किए गए सबमिशन को विवाद से समाप्त कर दिया जाता है (बशर्ते वे "सुरक्षित" न हों)। उन्हें संपादित नहीं किया जाना चाहिए। यदि कोई पाठक एक नई दिनचर्या प्रस्तुत करना चाहता है, तो उसे एक अलग उत्तर में ऐसा करना चाहिए।
क्रैकर का स्कोर सबमिशन की संख्या है (या तो आज्ञाकारी है या नहीं) वह दरार करता है। समान गणना वाले पटाखे के लिए, रैंकिंग सभी टूटे हुए सबमिशन (उच्च, बेहतर) में कुल बाइट काउंट द्वारा निर्धारित की जाती है।
उच्चतम स्कोर के साथ पटाखा (ओं) को विजेता दिनचर्या के डेवलपर्स के साथ विजेता घोषित किया जाएगा।
कृपया अपनी खुद की सबमिशन क्रैक न करें।
शुभकामनाएँ। :)
लीडरबोर्ड
अंतिम अद्यतन 2 सितंबर, 10:45 पूर्वाह्न ईएसटी
अचल बाधाएँ (गैर-दरार प्रस्तुतियाँ):
- CJam, 105 [डेनिस]
अजेय बल (पटाखे):
- डेनिस [ जावा, 269 ; सी, 58 ; गणितज्ञ, 29 ]
- मार्टिन ब्यूटनर [ जावा, 245 ]
return
आदि ...