यह प्रतियोगिता समाप्त हो गई है।
पुलिस और लुटेरों की चुनौतियों की प्रकृति के कारण , पुलिस चुनौती बहुत आसान हो जाती है जब संबंधित लुटेरों की चुनौती में रुचि कम हो जाती है। इसलिए, जब आप अभी भी हैश फ़ंक्शन पोस्ट कर सकते हैं, तो आपका उत्तर स्वीकार नहीं किया जाएगा या लीडरबोर्ड का हिस्सा नहीं होगा।
यह चुनौती एक की कम से कम कार्यान्वयन के लिए एक खोज है हैश फंक्शन वह यह है कि टक्कर प्रतिरोधी , यानी, यह एक ही हैश के साथ दो अलग-अलग संदेशों को खोजने के अव्यवहार्य होना चाहिए।
एक पुलिस वाले के रूप में, आप कोड आकार और टक्कर प्रतिरोध के बीच सबसे अच्छा समझौता खोजने के लिए एक हैश फ़ंक्शन का आविष्कार और कार्यान्वित करने का प्रयास करते हैं। बहुत सारे बाइट्स का उपयोग करें और एक अन्य पुलिस वाला आपको आउटगोल्फ करेगा!
एक डाकू के रूप में, आप उनके कार्यों को क्रैक करके पुलिस के प्रयासों को विफल करने की कोशिश करते हैं, यह साबित करते हुए कि वे अनुपयुक्त हैं। यह उन्हें अपने एल्गोरिदम को मजबूत करने के लिए अधिक बाइट्स का उपयोग करने के लिए मजबूर करेगा!
चुनौती देता है
कार्य
अपनी पसंद के क्रिप्टोग्राफ़िक हैश फ़ंक्शन एच: I -> O को लागू करें, जहां मैं 2 2 30 के नीचे सभी गैर-नकारात्मक पूर्णांक का सेट है और O 2 128 से नीचे सभी गैर-नकारात्मक पूर्णांकों का समूह है ।
आप या तो एच को एक वास्तविक फ़ंक्शन के रूप में कार्यान्वित कर सकते हैं जो एकल पूर्णांक, पूर्णांक का एक स्ट्रिंग प्रतिनिधित्व या पूर्णांक का एक सरणी या एक पूर्ण कार्यक्रम है जो STDIN से पढ़ता है और आधार 10 या 16 में STDOUT को प्रिंट करता है।
स्कोरिंग
एच कि इसे नीचे परिभाषित लुटेरों की चुनौती का विरोध करना है ।
यदि कोई डाकू पोस्ट करने के बाद पहले 168 घंटों में आपके सबमिशन को हरा देता है, तो उसे क्रैक माना जाता है ।
H का कार्यान्वयन यथासंभव कम होना चाहिए। सबसे छोटा अनियंत्रित सबमिशन पुलिस चुनौती का विजेता होगा।
अतिरिक्त नियम
यदि आप H को एक फंक्शन के रूप में कार्यान्वित करते हैं, तो कृपया उस प्रोग्राम को निष्पादित करने के लिए एक आवरण प्रदान करें जो ऊपर बताए अनुसार व्यवहार करता है।
कृपया अपने कार्यक्रम या आवरण (उदाहरण इनपुट और उनके संबंधित आउटपुट) के लिए कम से कम तीन परीक्षण वैक्टर प्रदान करें।
H आपके उपन्यास का डिज़ाइन (पसंदीदा) या एक प्रसिद्ध एल्गोरिथ्म हो सकता है, जब तक कि आप इसे स्वयं कार्यान्वित नहीं करते। किसी भी तरह के इन-बिल्ट हैश फंक्शन, कम्प्रेशन फंक्शन, सिफर, PRNG, इत्यादि का उपयोग करना मना है।
किसी भी अंतर्निहित हैशिंग कार्यों को लागू करने के लिए आमतौर पर उपयोग किया जाता है (उदाहरण के लिए, आधार रूपांतरण) उचित खेल है।
आपके प्रोग्राम या फ़ंक्शन का आउटपुट नियतात्मक होना चाहिए।
एक निशुल्क (बीयर के रूप में) संकलक / दुभाषिया होना चाहिए जो कि x86 या x64 प्लेटफ़ॉर्म पर या किसी वेब ब्राउज़र से चलाया जा सकता है।
आपका कार्यक्रम या कार्य यथोचित रूप से कुशल होना चाहिए और I 2 2 19 से नीचे किसी भी संदेश को सेकंड से कम में हैश करना है ।
एज मामलों के लिए, मेरी मशीन (इंटेल कोर i7-3770, 16 GiB RAM) पर लिया गया (दीवार) समय निर्णायक होगा।
इस चुनौती की प्रकृति को देखते हुए, किसी भी तरह से अपने उत्तर के कोड को बदलने के लिए मना किया जाता है, चाहे वह आउटपुट को बदल दे या नहीं।
यदि आपका सबमिशन क्रैक किया गया है (या यहां तक कि अगर यह नहीं है), तो आप एक अतिरिक्त उत्तर पोस्ट कर सकते हैं।
यदि आपका उत्तर अमान्य है (उदाहरण के लिए, यह I / O विनिर्देशन का अनुपालन नहीं करता है), तो कृपया इसे हटा दें।
उदाहरण
पायथन 2.7, 22 बाइट्स
def H(M): return M%17
आवरण
print H(int(input()))
लुटेरे चुनौती देते हैं
कार्य
'में निम्नलिखित पोस्ट करके प्रस्तुतियाँ पुलिस के किसी भी क्रैक धागा लुटेरों' दो संदेश: एम और एन में मैं ऐसा है कि एच (एम) = एच (एन) और एम ≠ एन ।
स्कोरिंग
प्रत्येक पुलिस सबमिशन को क्रैक करने से आपको एक अंक मिलता है। सबसे अधिक अंक के साथ डाकू जीतता है।
एक टाई के मामले में, सबसे लंबे समय तक सबमिशन जीत को क्रैक करने वाला बंधे हुए डाकू।
अतिरिक्त नियम
प्रत्येक पुलिस सबमिशन केवल एक बार क्रैक किया जा सकता है।
यदि एक पुलिस सबमिशन कार्यान्वयन-परिभाषित या अपरिभाषित व्यवहार पर निर्भर करता है, तो आपको केवल एक दरार ढूंढनी होगी जो आपकी मशीन पर काम करती है (वास्तव में)।
प्रत्येक दरार लुटेरों के धागे में एक अलग उत्तर से संबंधित है।
अमान्य क्रैकिंग प्रयास पोस्ट करने से आप उस विशेष सबमिट को 30 मिनट के लिए क्रैक कर सकते हैं।
आप अपनी खुद की सबमिशन क्रैक नहीं कर सकते हैं।
उदाहरण
Python 2.7, 22 बाइट्स user8675309 द्वारा
1
तथा
18
लीडरबोर्ड
सुरक्षित प्रस्तुतियाँ
निर्विवाद प्रस्तुतियाँ
आप इस स्टैक स्निपेट का उपयोग कर सकते हैं ताकि अभी तक फटे हुए उत्तरों की सूची प्राप्त न हो सके।
function g(p){$.getJSON('//api.stackexchange.com/2.2/questions/51068/answers?page='+p+'&pagesize=100&order=desc&sort=creation&site=codegolf&filter=!.Fjs-H6J36w0DtV5A_ZMzR7bRqt1e',function(s){s.items.map(function(a){var h=$('<div/>').html(a.body).children().first().text();if(!/cracked/i.test(h)&&(typeof a.comments=='undefined'||a.comments.filter(function(b){var c=$('<div/>').html(b.body);return /^cracked/i.test(c.text())||c.find('a').filter(function(){return /cracked/i.test($(this).text())}).length>0}).length==0)){var m=/^\s*((?:[^,(\s]|\s+[^-,(\s])+)\s*(?:[,(]|\s-).*?([0-9]+)/.exec(h);$('<tr/>').append($('<td/>').append($('<a/>').text(m?m[1]:h).attr('href',a.link)),$('<td class="score"/>').text(m?m[2]:'?'),$('<td/>').append($('<a/>').text(a.owner.display_name).attr('href',a.owner.link))).appendTo('#listcontent');}});if(s.length==100)g(p+1);});}g(1);
table th, table td {padding: 5px} th {text-align: left} .score {text-align: right} table a {display:block}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><table><tr><th>Language</th><th class="score">Length</th><th>User</th></tr><tbody id="listcontent"></tbody></table>