प्राइम नर्ड स्निपिंग पैटर्न


16

साल का सबसे लंबा दिन - यहाँ अतिरिक्त समय बर्बाद करने के लिए कुछ है ...


अवलोकन

ध्यान दें कि यह एक लोकप्रियता प्रतियोगिता नहीं है और न ही एक ग्राफिकल आउटपुट चुनौती है - आपको केवल 65,536 शून्य और लोगों के स्ट्रिंग की आवश्यकता होती है। प्रश्न के नीचे स्थित स्टैक स्निपेट इसे 256 ब्लैक एंड व्हाइट इमेज द्वारा प्रदर्शित करेगा और आपके आधिकारिक स्कोर की गणना करेगा। फिर आप छवि को सहेज सकते हैं और अपने कोड के साथ अपने उत्तर पर अपलोड कर सकते हैं (चूंकि स्ट्रिंग आउटपुट 30,000 वर्ण स्टैक एक्सचेंज उत्तर में फिट नहीं होगा)।


स्कोरिंग

एक छवि का स्कोर उसके अलग-अलग पिक्सेल के स्कोर का योग है। एक व्यक्तिगत पिक्सेल का स्कोर गैर-ऑर्थोगोनल , प्राइम डिस्टेंस पिक्सेल में से प्रत्येक के लिए सबस्कोर का योग है जो पिक्सेल के विपरीत रंग के होते हैं । इस तरह के प्रत्येक पिक्सेल के लिए सबकोरकोर वह 1/pस्थान pहै, जहां प्राइम दूरी है।

इस प्रश्न के संदर्भ में, शर्तों की निम्नलिखित परिभाषाएँ हैं:

  • गैर-ऑर्थोगोनल: एक पिक्सेल गैर-ऑर्थोगोनल है जिसे पिक्सेल में स्कोर किया जा रहा है यदि यह एक ही पंक्ति में नहीं है और एक ही कॉलम में नहीं है।

  • प्राइम दूरी: एक पिक्सेल पिक्सेल से एक प्रमुख दूरी पर होता है, अगर उन्हें यूक्लिडियन दूरी से अलग किया जाता है जो कि वास्तव में एक प्राइम नंबर है। विशेष रूप से, दूरी को न्यूनतम रूप से मापी जाने वाली दूरी है - जो कि ऊपरी बाएँ पिक्सेलsqrt(2)नीचे दाईं ओर पिक्सेल (सभी 4 किनारों की लपेट) सेदूरी है।

  • विपरीत रंग: एक पिक्सेल, पिक्सेल के विपरीत रंग का होता है, यदि उनके मानों का योग 1 होता है, तो पहला है 0 और दूसरा है 1, या पहला है 1 और दूसरा है 0।

स्टैक स्निपेट में उदाहरण कोड शामिल होता है जो दिखाता है कि किसी छवि को कैसे स्कोर किया जाए, लेकिन इसमें कोई अनुकूलन या एक कुशल दृष्टिकोण शामिल नहीं है, बस सही कोड है ताकि अंतिम छवियों का स्कोरिंग लगातार किया जा सके।

यदि कोड में कुछ भी सही नहीं है, तो कृपया मुझे या तो टिप्पणियों में या चैट में बताएं ।

इस विशेष चुनौती का जवाब देने के लिए जावास्क्रिप्ट सबसे अच्छी भाषा नहीं हो सकती है । ध्यान दें कि स्निपेट कोड जानबूझकर तेज दृष्टिकोण के रूप में कोई सुराग नहीं देता है। इसमें केवल उन कार्यकुशलताओं को शामिल किया जाएगा जो पहले से ही एक मौजूदा उत्तर में प्रदर्शित की गई हैं।


दृश्य

स्कोरिंग पिक्सल

स्कोरिंग पिक्सल के वितरण के लिए एक सहज ज्ञान युक्त अनुभव के लिए, यहाँ (बैंगनी में) पिक्सेल के लिए गैर-ऑर्थोगोनल प्राइम दूरी पिक्सेल हैं (256, 256) 256 छवि द्वारा:

गैर-ऑर्थोगोनल प्रधान दूरी वितरण की छवि


एक यादृच्छिक छवि

यह पायथन 3 उत्तर के उदाहरण से बेतरतीब ढंग से उत्पन्न छवि है। इसका स्कोर 138,267.64 है और आपको कुछ हरा देता है।

बेतरतीब ढंग से उत्पन्न छवि


इनपुट

कोड को इनपुट की आवश्यकता नहीं है।

उत्पादन

कोड को 65,536 शून्य और लोगों के एक स्ट्रिंग का उत्पादन करना चाहिए, जो 256 छवि द्वारा एक काले और सफेद 256 के पिक्सेल का प्रतिनिधित्व करता है। अंक एक निरंतर स्ट्रिंग होना चाहिए, जिसमें कोई विभाजक नहीं है। यदि आप किसी फ़ाइल पर आउटपुट करते हैं तो आपको कॉपी करना और चिपकाना आसान हो सकता है, लेकिन यह आपके ऊपर है।

आपका कोड अन्य जानकारी को भी आउटपुट कर सकता है जो आपको उपयोगी लगता है, जब तक कि स्ट्रिंग को कॉपी किया जा सकता है और स्टैक स्निपेट में पेस्ट किया जा सकता है। उदाहरण के लिए, आप एक फ़ाइल के लिए सबसे अच्छा अभी तक स्ट्रिंग का उत्पादन करना चाहते हैं और नियमित अंतराल पर सबसे अच्छा स्कोर कर सकते हैं, जिससे उपयोगकर्ता को खोज बंद करने के लिए चुनने की अनुमति मिलती है।


ढेर स्निपेट

जैसा कि Sp3000 द्वारा बताया गया है , स्निपेट को स्कोर की गणना करने में 10 मिनट का समय लग रहा था, जो कि बहुत कम धीमा है, यहां तक ​​कि जानबूझकर अक्षम संदर्भ कार्यान्वयन के लिए भी। मैंने स्कोरिंग के लिए पिक्सेल ऑफ़सेट को प्रीकोम्प्यूट करने के लिए Sp3000 के सुझाए गए सुधार में संपादित किया है, और स्कोर की गणना में अब कुछ सेकंड लगते हैं।


यदि आप अपने स्वयं के कोड के लिए प्रारंभिक बिंदु के रूप में आउटपुट या किसी अन्य उत्तर के कोड का उपयोग करते हैं, तो कृपया क्रेडिट और सहायक उत्तर देने के लिए लिंक को याद रखें। इस प्रश्न के उत्तर में उदाहरण के उत्तर या प्रश्न में कोड को क्रेडिट करने की आवश्यकता नहीं है।

नर्ड स्निपिंग शब्द के लिए रान्डेल मुनरो को श्रेय

जवाबों:


36

सीजाम, स्कोर 276496.9062958626

2,128*_(]128*

यह इष्टतम हो जाता है, क्योंकि: दूरी 2 के साथ कोई भी गैर-ऑर्थोगोनल जोड़े नहीं हैं। इसलिए दूरी विषम होनी चाहिए, और इसलिए दूरी चुकता है। जैसा कि पी 2 = एक्स 2 + वाई 2 , एक्स और वाई में से एक (चुकता या नहीं) विषम होना चाहिए, और दूसरा भी होना चाहिए। इस छवि में वे बिंदु हमेशा विपरीत रंग के होते हैं।

यह और इसके नकारात्मक भी एकमात्र इष्टतम समाधान हैं। एक इष्टतम समाधान में, कोई भी गैर-ऑर्थोगोनल, प्राइम डिस्टेंस पिक्सल का रंग एक जैसा नहीं होना चाहिए। तिरछे विपरीत पिक्सेल होते हैं जैसे (3,4) और (4,3)। विपरीत रंग, आदि के पिक्सल को भरने से, हम एक ही रंग के साथ एक विकर्ण प्राप्त कर सकते हैं। विकर्ण में प्रत्येक पिक्सेल से शुरू करके, हम सभी विरोधी-विकर्णों को उसी तरह से प्राप्त कर सकते हैं। ध्यान दें कि वे चारों ओर लपेटते हैं। यह अभी भी इष्टतम है अगर वे नहीं करते हैं, हालांकि।


3
मैं उम्मीद कर रहा था कि लोगों को यह देखने में अधिक समय लगेगा कि ...
ट्राइकोप्लाक्स

1
मुझे यह काम करने में एक लंबा समय लगा कि इस प्रश्न को लिखते समय एक इष्टतम समाधान था, इसलिए मैंने सोचा कि यह एक चुनौती के रूप में पोस्ट करने लायक होगा। आपने इसे इतनी जल्दी कैसे देखा? क्या यह सिर्फ स्पष्ट था या आपके पास एक विशेष विचार प्रक्रिया थी?
ट्राइकोप्लाक्स

4
PS मुझे नहीं पता कि आपने इस प्रश्न को किस समय देखा था, लेकिन प्रश्न के पोस्ट होने के 71 मिनट बाद एक इष्टतम समाधान एक इनाम के योग्य है - मुझे इसे असाइन करने से पहले सिर्फ 2 दिन इंतजार करना होगा ...
ट्राइकोप्लाक्स

@trichoplax आपकी पहली छवि से, ऐसा लगता था कि एक ही विकर्ण में कई बिंदु हैं। मैं शुरुआत में व्यापक धारियों का उपयोग करने के बारे में सोच रहा था। और फिर मैंने अपने विचार को सत्यापित करने के लिए जिम्प खोला। और मेरे आश्चर्य के लिए, मुझे पूरी तरह से काली छवि मिली जब मैंने इसे इस पैटर्न से भर दिया।
jimmy23013

8
@trichoplax को देखते हुए कि आप जानते थे कि एक इष्टतम समाधान था, मुझे लगता है कि आप प्रश्न को कम हल करने के लिए बेहतर संशोधित करना बेहतर होगा। हालांकि jimmy23013 ने इसे तेजी से पाया, यह हमेशा समय की बात है जब तक कि कोई इसे नहीं पाता है, और फिर यह खत्म हो गया है।
xnor

1

पायथन 3, स्कोर 138267.64

यह एक न्यूनतम उत्तर है कि क्या आवश्यक है, और कुछ को हरा देने के उदाहरण के रूप में ...

उसमे समाविष्ट हैं

  • भाषा का नाम।
  • सवाल में स्टैक स्निपेट से स्कोर।
  • स्टैक स्निपेट से छवि को बचाया गया।
  • कोड 65,536 शून्य और लोगों के स्ट्रिंग का उत्पादन करने के लिए उपयोग किया जाता है।

उत्पादन

बेतरतीब ढंग से उत्पन्न छवि

कोड

from random import random

output_string = ''
filename = '65536digits.txt'

for t in range(65536):
    digit = int(random() * 2)
    output_string += str(digit)

with open(filename, 'w') as output_file:
    output_file.write(output_string)

यह सिर्फ एक उदाहरण है। इस विशेष चुनौती के प्रतिस्पर्धी जवाब के लिए पायथन जरूरी नहीं कि सबसे अच्छी भाषा हो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.