प्राइम्स में कार्यक्रम खोजना


9

आइए 94 से 95 प्रिंट करने योग्य ASCII वर्णों के लिए संख्याओं को असाइन करें :

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

स्पेस 0 है, !1 है, और इसी तरह ~94 तक है। हम 95 से टैब ( \t) और 96 से न्यूलाइन ( \n) भी असाइन करेंगे ।

अब अनंत स्ट्रिंग पर विचार करें, जिसका Nth वर्ण ऊपर का वर्ण है, जिसे Nth अभाज्य संख्या , modulo 97, को सौंपा गया है। हम इस तार को कहेंगे S.

उदाहरण के लिए, पहली अभाज्य संख्या 2 है, और 2 mod 97 2 है, और 2 को असाइन किया गया है ", इसलिए S का पहला वर्ण है "। इसी तरह, 30 वीं प्राइम संख्या 113 है, और 113 मॉड 97 16 है, और 16 को सौंपा गया है 0, इसलिए एस का 30 वां चरित्र है 0

S के पहले 1000 अक्षर इस प्रकार हैं:

"#%'+-137=?EIKOU[]cgiosy $&*,0>BHJTV\bflrt~
#%1=ACGMOY_ekmswy"046:HNXZ^dlrx|!)-5?AKMSW]eiko{"&.28DFX^hntv|%+139?CEQ[]agmo{  $,6>HPV\`hnrz~+5ACMOSU_mqsw$(*.BFNX`djp~!'-5;GKQS]_eoq{}"48:>DJRX^tv
'17=EQU[aciu    026<>DHJNZ\b#)/7ISaegkqy}   $0:<@BFLXdlx~!'/3;?MQWY]ceku(.24LPR\hjt|!'-?EIKWamu$28<>BDNZ`fxz)+AGOUY[_gmwy"0:@LNRT^jl|~#')3;Meiow&(,4DFJRX^bnp%+-37=KQUW]agsy    ,06BJPTn
)15;=CYegw  ".<FHLTZ`dfjpx|~#-/9AES]ikquw&48>FLPbjtz
'1=KOU[]y{$,0>BJV\hlr%/1A[_amsw"(04<RTXZf!#)/59?AMQ]_ik{},2FV^bdhj
'39CEIOQWacoy{$28<BJPVfrtx%+/7AIOUkqs}*.4FHR`dfp~!);?EGKQS_cw,8:>DJLRhjp
%139EUW[aosu&>HNPZ\fhrxz#%/5=[egqy  (:@LXZlrv|!35?MSWY]uw"(8@FL^nptz|!'17COacim &>BDHNP\`n+5;GU[eqsw}$*46:HNTX^`jl|'/AEKWY_ek&,:>FPXdvz|
7CIK[agu    ,0NTZ`hnrt
%)+1GMOSegkwy   "<BHLT^~-/59;?AKY_cku{.24:X\dntz!'37=?EIOQ[]ms&*6D`fz~/7=AGU[akmw"*46@HT^vx|#)-5GQW]_eo{}&,28@FPVX^djt|39OQcgoy6>PTV`fhnr#+7IY_ams} (*0:HLdfvx!#-AEGKScioq},48>\^hjptz
'-1=CKW[iu  6<HNPfn
)/=ACIS[aek(6@BNXZjl~5GM]ouw(,24>FPV\dhnpz|'+179EIWims&*28<DHV\`nz~
=AY_eq}*046:LR^

स्टैक एक्सचेंज टैब को रिक्त स्थान में बदल देता है, इसलिए यहां टैब के साथ एक पेस्टबिन बरकरार है।

चुनौती

एक का पता लगाएं सबस्ट्रिंग एस की है कि है कि पहली एम रूढ़ अंक, आउटपुट पसंद की अपनी भाषा में एक वैध कार्यक्रम है क्रम में प्रत्येक पंक्ति में एक, एम पूर्णांक कुछ सकारात्मक के लिए

उदाहरण के लिए, 2S का एक विकल्प है (यह कई स्थानों पर होता है लेकिन कोई भी करेगा), और 2एक मान्य CJam प्रोग्राम है जिसका आउटपुट है

2

क्रम में पहला M = 1 अभाज्य संख्या, एक प्रति पंक्ति, जो है।

इसी तरह, स्ट्रिंग 2N3N5कहीं एस का एक विकल्प हो सकता है, और 2N3N5एक वैध सीजेएम प्रोग्राम है जो आउटपुट करता है

2
3
5

क्रम में पहला M = 3 अभाज्य संख्या, प्रति पंक्ति एक है।

स्कोरिंग

उच्चतम एम जीत के साथ प्रस्तुत। टाई ब्रेकर पहले पोस्ट किए गए सबमिशन में जाता है।

विवरण

  • अंतिम पंक्ति के बाद एक वैकल्पिक अनुगामी न्यूलाइन को छोड़कर, प्रत्येक लाइन पर एकल प्राइम के अलावा कोई अतिरिक्त आउटपुट नहीं होना चाहिए। कोई इनपुट नहीं है।

  • जब तक यह परिमित हो, सबस्ट्रिंग किसी भी लम्बाई का हो सकता है।

  • एस के भीतर कहीं भी सबस्ट्रिंग हो सकता है (और एस इसमें कई स्थानों पर हो सकता है।)

  • कार्यक्रम एक पूर्ण विकसित कार्यक्रम होना चाहिए। आप यह नहीं मान सकते हैं कि यह एक REPL वातावरण में चलाया गया है।

  • कार्यक्रम को त्रुटियों के बिना समय की एक सीमित मात्रा में चलना चाहिए और समाप्त करना चाहिए।

  • "न्यूलाइन" की व्याख्या आपके सिस्टम / दुभाषिया / आदि के लिए आवश्यक किसी भी सामान्य न्यूलाइन प्रतिनिधित्व के रूप में की जा सकती है । बस इसे एक पात्र मानें।

आपको S का इंडेक्स देना चाहिए जहां आपका सबस्ट्रिंग शुरू होता है, साथ ही सबस्ट्रिंग की लंबाई अगर खुद ही सबस्ट्रिंग नहीं है। आप केवल यह नहीं दिखा सकते हैं कि सबस्ट्रिंग मौजूद होना चाहिए।

संबंधित: एक विशाल बोगल बोर्ड में कार्यक्रमों की तलाश


1
क्या आप किसी भी वर्ण के उस बड़े स्ट्रिंग को बनाने के लिए कोड दे सकते हैं? (मुझे लगता है कि आपके पास पहले से ही एक है)
ऑप्टिमाइज़र

यदि 95 प्रिंट करने योग्य ASCII वर्ण हैं तो आप modulo 97 क्यों कर रहे हैं? आह कभी नहीं, आप भी टैब और newline का उपयोग करें।
aditsu छोड़ दिया क्योंकि एसई

यह देखते हुए कि 0 mod 97 केवल एक बार हो सकता है, अंतरिक्ष की कमी वास्तव में दर्द देती है ...
Sp3000

@ Sp3000 गोली मारो, जो मुझे नहीं हुआ। : /
केल्विन के शौक

जवाबों:


18

पेंगुइन , एम = =

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

def program_length(n):
    PLUS, MINUS, DOT = '000', '001', '100'
    i = 1
    s = ''
    while n > 0:
        i += 1
        if all(i%f for f in range(2,i)): 
            s += str(i) + '\n'
            n -= 1
    out = '110111'
    ch = 0
    for c in s:
        dif = ord(c) - ch
        if dif > 0: out += PLUS * dif
        else: out += MINUS * -dif
        out += DOT
        ch = ord(c)
    return int(out, 2)

उदाहरण के लिए, एम = 5 के लिए, इस कार्यक्रम पहले 2458595061728800486379873255763299470031450306332287344758771914371767127738856987726323081746207100511846413417615836995266879023298634729597739072625027450872641123623948113460334798483696686473335593598924642330139401455349473945729379748942060643508071340354553446024108199659348217846094898762753583206697609445347611002385321978831186831089882700897165873209445730704069057276108988230177356 वर्ण है।


यदि संदेह है, तो एक बीएफ संस्करण है जो इसे आपके लिए करेगा।
17

3
यह मजेदार है कि कैसे पेंगुइन मेरी एक और चुनौती से प्रेरित था। यह ऐसा है जैसे मैं अपने पतन के बारे में बता रहा हूं।
केल्विन के शौक

3

सीजाम, एम = 2

छोटा एवं सुन्दर:

2NZ

यह क्रम स्ट्रिंग के 1-इंडेक्सिंग का उपयोग करके 54398 की स्थिति में शुरू होता है। आप इसे यहाँ ऑनलाइन टेस्ट कर सकते हैं

मैंने कुछ संभावित विविधताओं की खोज करने का प्रयास किया, लेकिन यह पहला समाधान था जो मुझे मिला।

मैं वर्तमान में एक M = 3 संस्करण खोजने की कोशिश कर रहा हूं, लेकिन मुझे समय की उचित अवधि के भीतर एक खोजने की उम्मीद नहीं है। यदि अनुक्रम समान रूप से यादृच्छिक (एक सन्निकटन) है, तो लंबाई 5 अनुक्रम के लिए शुरुआती सूचकांक 10 ^ 9 के आदेश पर हो सकता है।


सत्यापित: 1e6{mp},97f%' f+"2NZ"# लिंक (
थोड़ा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.