कोलमोगोरोव लचीलापन। AKA बिक्री! स्टॉक्स के अंतिम समय में सभी कोडगॉल्फ पर छूट!


12

यह एक , , चुनौती है जिसमें कोई इनपुट के साथ एक निश्चित आउटपुट का उत्पादन होता है।

आउटपुट स्वरूप, हालांकि, लचीला है - इसे मानक आउट में मुद्रित किया जा सकता है, मानक त्रुटि के लिए मुद्रित किया जा सकता है, वर्णों की सूची के रूप में लौटा, बाइट की सूची के रूप में लौटा, या पूर्णांकों की सूची के रूप में लौटा। अगर आपको लगता है कि कुछ और उचित लगता है तो टिप्पणियों में पूछें!

यहाँ एक सरल, बड़ा अक्षर ASCII कला CODEGOLF है :

 CCCC   OOO   DDDD   EEEEE   GGG    OOO   L      FFFFF
C      O   O  D   D  E      G      O   O  L      F
C      O   O  D   D  EEE    G  GG  O   O  L      FFF
C      O   O  D   D  E      G   G  O   O  L      F
 CCCC   OOO   DDDD   EEEEE   GGGG   OOO   LLLLL  F

बिना किसी नई सीमा के (या किसी भी स्थान पर अनुगामी स्थान) यह 256 वर्ण लंबा है:

 CCCC   OOO   DDDD   EEEEE   GGG    OOO   L      FFFFFC      O   O  D   D  E      G      O   O  L      FC      O   O  D   D  EEE    G  GG  O   O  L      FFFC      O   O  D   D  E      G   G  O   O  L      F CCCC   OOO   DDDD   EEEEE   GGGG   OOO   LLLLL  F

गैर-अंतरिक्ष वर्णों के (0-आधारित) सूचकांक हैं:

1, 2, 3, 4, 8, 9, 10, 14, 15, 16, 17, 21, 22, 23, 24, 25, 29, 30, 31, 36, 37, 38, 42, 49, 50, 51, 52, 53, 54, 61, 65, 68, 72, 75, 82, 89, 93, 96, 103, 104, 111, 115, 118, 122, 125, 126, 127, 132, 135, 136, 139, 143, 146, 153, 154, 155, 156, 163, 167, 170, 174, 177, 184, 188, 191, 195, 198, 205, 207, 208, 209, 210, 214, 215, 216, 220, 221, 222, 223, 227, 228, 229, 230, 231, 235, 236, 237, 238, 242, 243, 244, 248, 249, 250, 251, 252, 255

आप अपने कोड में इन 97 बाइट्स में से किसी का भी उपयोग नहीं कर सकते हैं, लेकिन इन बाइट्स में एक सूची (या इसी तरह के आउटपुट) का उत्पादन करना होगा, इस क्रम में, आपके द्वारा उपयोग किए जा रहे कोड पृष्ठ में 32 वें बाइट द्वारा प्रतिस्थापित गुम बाइट्स के साथ (कई में, कई में) कोड-पृष्ठ एक अंतरिक्ष चरित्र)।

यदि आप मदद करता है तो आप सुंदर-मुद्रण * newlines (लेकिन लाइनों पर कोई अनुगामी स्थान) शामिल नहीं कर सकते।

उदाहरण के लिए जेली कोड-पेज का उपयोग करके यह आउटपुट स्वीकार्य है:

 ¢£¤¥   ®µ½   ÇÐÑ×   ßæçðı   øœþ    $%&   *      12345
6      =   A  D   H  K      R      Y   ]  `      g
h      o   s  v   z  }~¶    ⁴  ⁷⁸  ⁻   Ɓ  Ƒ      ƲȤɓ
ƈ      ɲ   ʂ  ȥ   Ẹ  Ḳ      Ṭ   Ỵ  Ḃ   Ḟ  İ      Ṡ
 ẆẊẎŻ   ẹḥị   ṇọṛṣ   ẉỵẓȧḃ   ḟġḣŀ   ṗṙṡ   ẏż«»‘  ”

... लेकिन ऐसा है:

 ¢£¤¥   ®µ½   ÇÐÑ×   ßæçðı   øœþ    $%&   *      123456      =   A  D   H  K      R      Y   ]  `      gh      o   s  v   z  }~¶    ⁴  ⁷⁸  ⁻   Ɓ  Ƒ      ƲȤɓƈ      ɲ   ʂ  ȥ   Ẹ  Ḳ      Ṭ   Ỵ  Ḃ   Ḟ  İ      Ṡ ẆẊẎŻ   ẹḥị   ṇọṛṣ   ẉỵẓȧḃ   ḟġḣŀ   ṗṙṡ   ẏż«»‘  ”

...और ऐसे ही:

[32, 1, 2, 3, 4, 32, 32, 32, 8, 9, 10, 32, 32, 32, 14, 15, 16, 17, 32, 32, 32, 21, 22, 23, 24, 25, 32, 32, 32, 29, 30, 31, 32, 32, 32, 32, 36, 37, 38, 32, 32, 32, 42, 32, 32, 32, 32, 32, 32, 49, 50, 51, 52, 53, 54, 32, 32, 32, 32, 32, 32, 61, 32, 32, 32, 65, 32, 32, 68, 32, 32, 32, 72, 32, 32, 75, 32, 32, 32, 32, 32, 32, 82, 32, 32, 32, 32, 32, 32, 89, 32, 32, 32, 93, 32, 32, 96, 32, 32, 32, 32, 32, 32, 103, 104, 32, 32, 32, 32, 32, 32, 111, 32, 32, 32, 115, 32, 32, 118, 32, 32, 32, 122, 32, 32, 125, 126, 127, 32, 32, 32, 32, 132, 32, 32, 135, 136, 32, 32, 139, 32, 32, 32, 143, 32, 32, 146, 32, 32, 32, 32, 32, 32, 153, 154, 155, 156, 32, 32, 32, 32, 32, 32, 163, 32, 32, 32, 167, 32, 32, 170, 32, 32, 32, 174, 32, 32, 177, 32, 32, 32, 32, 32, 32, 184, 32, 32, 32, 188, 32, 32, 191, 32, 32, 32, 195, 32, 32, 198, 32, 32, 32, 32, 32, 32, 205, 32, 207, 208, 209, 210, 32, 32, 32, 214, 215, 216, 32, 32, 32, 220, 221, 222, 223, 32, 32, 32, 227, 228, 229, 230, 231, 32, 32, 32, 235, 236, 237, 238, 32, 32, 32, 242, 243, 244, 32, 32, 32, 248, 249, 250, 251, 252, 32, 32, 255]

(यह अंतिम कोई भी कोड-पृष्ठ वाली किसी भी भाषा में एक मान्य सूची आउटपुट है, और कोई भी उचित सूची-स्वरूपण का उपयोग कर सकता है।)


यहाँ पायथन 3 कोड है जो अनुपलब्ध ASCII बाइट दिखाता है।

* हालांकि मुद्रण ही वास्तव में बहुत सुंदर नहीं हो सकता है!


आप अपने कोड में इन 97 बाइट्स में से किसी का उपयोग नहीं कर सकते हैं इसका मतलब यह है कि मैं इन ASCII वर्णों का उपयोग नहीं कर सकता हूं: $%&*123456=ADHKRY]``ghosvz}~और कोई नई पंक्ति नहीं?
टाइटस

1
@Titus यदि आपका कोड-पृष्ठ ASCII के साथ संरेखित होता है, तो हां - या दी गई सीमा में एक टैब या किसी भी अन्य चार्ट, जैसे कि unprintables या विस्तारित। (( टीआईओ में लिंक किए गए पायथन लिपि को भी देखें )
जोनाथन एलन

2
इसके लायक क्या है, यहां एक कोड सत्यापनकर्ता है (कोई विशेष कोड-पृष्ठ नहीं मानते हुए)।
अरनौलद

मेरे पास लगभग PHP में है ... केवल एक के array_map(function($n){return sprintf("%6b",$n);},...)बिना एक रास्ता चाहिए $(मैं ऐसा कर सकता था) और बिना }(कोई विचार नहीं)। हाँ; मैं डेटा पैक करना चाहता हूं!
टाइटस

जवाबों:


7

पायथन 2 , 321 203 बाइट्स

print map(lambda(i,x):(x>'0'and i-8-8-8-8)+8+8+8+8,enumerate(bin(int(reduce(lambda x,y:x+repr('abcdefijkl'.find(y)),'cfjdbljcibkeajjejiljjlcbjddlafklebajjlceljdeadficijflealkeklkljadfbbckjebclkf','')))))

इसे ऑनलाइन आज़माएं!


स्पष्टीकरण:

अंदर से बाहर:

cfjdbljcibkeajjejiljjlcbjddlafklebajjlceljdeadficijflealkeklkljadfbbckjebclk25731972618407747697792173390589410779249734035626759409848989703511287412985अनुमत वर्णों के साथ एन्कोडेड संख्या है । (कोई 123456अनुमति नहीं है)

reduce(lambda x,y:x+repr('abcdefijkl'.find(y)),'cfjdbl..bclkf','') स्ट्रिंग को उसके दशमलव स्ट्रिंग में मैप करता है:

  • reduce(lambda x,y:x+y,'..','')के रूप में ही है ''.join('..')(कोई oअनुमति नहीं है)
  • repr('..')के बजाय str('..')(कोई sअनुमति नहीं है)
  • 'abcdefijkl'.find(y) एक अंक के लिए एक चार्ट मैप करता है।

enumerate(bin(int(...)))संख्या स्ट्रिंग को बाइनरी स्ट्रिंग में परिवर्तित करता है, और एनुमरेट्स करता है। इससे जोड़े मिलते हैं[(0,0), (1,b), (2,1), (3,1), ...]

map(lambda(i,x):(x>'0'and i-8-8-8-8)+8+8+8+8, ... ) एनुमरेटेड सूची को अंतिम परिणाम में परिवर्तित करता है।

  • map(lambda(i,x):.. , .. )के बजाय [... for(i,x)in ...](कोई o]अनुमति नहीं है)
  • lambda(i,x): ..प्रत्येक (इंडेक्स, वैल्यू) पेयर को या तो इंडेक्स में बदलता है या 32
  • (x>'0'and i-8-8-8-8)+8+8+8+8 के समान है:
    • x>'0'and i or 8+8+8+8, (कोई oअनुमति नहीं है)
    • [8+8+8+8,i][x>'0']या [8<<9-7,i][x>'0'], (कोई ]अनुमति नहीं है)
  • 8+8+8+8= 32(कोई 23अनुमति नहीं है)

इसका मतलब यह है कि कार्यक्रम अनिवार्य रूप से समान है:

print[[32,i][x>'0']for i,x in enumerate(bin(25731972618407747697792173390589410779249734035626759409848989703511287412985))]

कुछ अच्छे गोल्फ काम करते हैं: डी
जोनाथन एलन

7

सी (जीसीसी) , 318 बाइट्स

main(_){--_<88+80+88?printf((int[:>){77707-989908070??>,((int[:>){0xE8E8C79E^0xB0B0080,0xC07E0870^0xE0000C00,0xCC08099C^0xEE0C008E,0xE8888989^0xCC00808,0x9E088990^0x800C0000,0x990C8888^0x080ECC00,0xF9C7a088^0x080000C0,0x9F8C78F8^0x900000??>[_>>(0xC^0x9):>>>(_<<9+9+9>>9+9+9))<<(70^89)>>(70^89)?_:' '),main(_+9-7):0;??>

इसे ऑनलाइन आज़माएं!

यह एक यात्रा का एक सा है ...

1. सूची का संपीडन

किसी तरह हमें यह जांचना होगा कि क्या दिया गया पूर्णांक विशेष कोड बिंदुओं में से एक है। कोई भी 'नग्न' सूची बहुत लंबी होगी, इसलिए हम एक चेक सूची का उपयोग करते हैं। इस सूची में कोड बिंदुओं पर एक गैर-शून्य मान है जो 'प्रतिबंधित' हैं और उन पर शून्य मान है जो नहीं हैं।

दुर्भाग्य से इस सूची में अभी भी 512 बाइट्स लगते हैं (ऐसा लगता है 0,0,7,7,0,7,0,...)। यह एक बिटमास्क के साथ छोटा किया जा सकता है।

बिटमास्क का उपयोग करने के लिए हम प्रत्येक बाइट को दो टुकड़ों में तोड़ देंगे। पहले 3 बिट्स सरणी से एक मुखौटा उठाएंगे जबकि अंतिम 5 सरणी में थोड़ा सा चुनेंगे। हम सरणी को और अधिक सिकोड़ नहीं सकते क्योंकि डिफ़ॉल्ट रूप से उपयोग किए जाने वाले 32-बिट पूर्णांक 2 ^ 5 = 32 बिट्स से अधिक का समर्थन नहीं करते हैं।

एक संदर्भ कार्यान्वयन का उपयोग करते हुए मैंने लिखा:

int main() {
    int i;
    int vals[] = {1, 2, 3, 4, 8, 9, 10, 14, 15, 16, 17, 21, 22, 23, 24, 25, 29, 30, 31, 36, 37, 38, 42, 49, 50, 51, 52, 53, 54, 61, 65, 68, 72, 75, 82, 89, 93, 96, 103, 104, 111, 115, 118, 122, 125, 126, 127, 132, 135, 136, 139, 143, 146, 153, 154, 155, 156, 163, 167, 170, 174, 177, 184, 188, 191, 195, 198, 205, 207, 208, 209, 210, 214, 215, 216, 220, 221, 222, 223, 227, 228, 229, 230, 231, 235, 236, 237, 238, 242, 243, 244, 248, 249, 250, 251, 252, 255, 0};

    for (i = 0; i <= 0xFF; ++i) {
        int j,f;
        f = 0;
        for (j = 0; vals[j]; ++j)
            if (vals[j] == i)
                f = 1;
        if (f)
            printf("1");
        else
            printf("0");

        if (i%32 == 31)
            printf("\n");
    }

    return 0;
}

मैं कमांड का उपयोग करके इस नए सरणी के लिए उपयुक्त मान उत्पन्न करने में सक्षम था echo "obase=16;ibase=2;$(./a.out | rev)" | bc। यह प्रोग्राम के उपरोक्त प्रोग्राम ( ./a.out) का आउटपुट पास करता है rev, जो प्रत्येक लाइन को उलट देता है। यह एक हेडर के साथ bc को प्रिंट करता है जो आउटपुट बेस को 16 और इनपुट बेस को 2 पर सेट करता है। इस प्रकार bc बाइनरी अंक को हेक्साडेसिमल बिटमास्क में परिवर्तित करता है।

परिणामी सरणी को इस 'बीटा' समाधान में देखा जा सकता है:

f(){
    int x;
    int arr[] = {0xE3E3C71E, 0x207E0470, 0x22040912, 0xE4488181, 0x1E048990, 0x91024488, 0xF1C7A048, 0x9F1C78F8};
    for (x=0; x<=0xFF; ++x) {
        int mask = arr[x >> 5];
        int bit = mask >> (x & 0x1F);

        if (bit & 1)
            printf("%c", x);
        else
            printf(" ");
    }
}

2. अड़चन से निपटना

बहुत सारी अड़चनें हैं जिन्हें उपरोक्त कोड पर रखने की आवश्यकता है। यहां मैं उनमें से प्रत्येक 1-बाय -1 से गुजरता हूं।

  1. कोई असाइनमेंट नहीं

यह अन्य भाषाओं द्वारा महसूस किया गया है, सी में असाइनमेंट के बिना किसी भी गारंटीकृत मूल्यों को चर में लाना बहुत कठिन है। हमारे लिए सबसे आसान तरीका है कि हम एक पूर्ण कार्यक्रम के रूप में अपने फ़ंक्शन को लिखें। का पहला तर्क mainपास argcकिया जाएगा जिसका मूल्य 1 होगा यदि उसे बिना किसी तर्क के कहा जाता है।

  1. कोई लूपिंग नहीं

सी में केवल पाशन निर्माणों हैं for, whileऔर gotoजो सब से प्रतिबंधित वर्ण होते हैं। यह हमें पुनरावृत्ति का उपयोग करने के साथ छोड़ देता है। मुख्य कार्य 1 से शुरू होगा और तर्क के 256 होने तक पुनरावृत्ति करेगा, इस बीच यह 0-अनुक्रमित मान का उपयोग करने के लिए तर्क को आंतरिक रूप से कम कर देगा।

  1. हेक्स मान

उपरोक्त सरणी में मान हेक्साडेसिमल हैं, यहां तक ​​कि जब दशमलव में परिवर्तित किया जाता है, तो इनमें कुछ प्रतिबंधित प्रतीक होते हैं, सबसे विशेष रूप से 123456 (ई.पू. कम-आवरण) हो सकते हैं। इसके चारों ओर काम करने के लिए प्रत्येक स्थिर दूसरे के साथ XORed होता है ताकि प्रतिबंधित वर्ण हटा दिए जाएं। 1 बन जाता है 9 ^ B, 2 बन जाता है C ^ E, 3 बन जाता है B ^ 8, 4 बन जाता है 8 ^ C, 5 बन जाता है 9 ^ C, और 6 बन जाता है 9 ^ F (इसे करने के और भी तरीके हैं, मैंने इस तरह से चुना) ।

  1. मुद्रण

प्रतिबंध हमारे लिए कई मुद्रण कार्यों को नहीं छोड़ते हैं। putcharऔर putsदोनों प्रतिबंधित हैं, छोड़कर printf। दुर्भाग्य से हमें printfएक प्रारूप स्ट्रिंग भेजना होगा , आदर्श रूप से "% c"। इस तरह के सभी तार में उस पेसिक प्रतिशत का संकेत होता है जिसे हम हटाना चाहते हैं। सौभाग्य से हम थोड़ा-सा एंडियन मशीन मानते हैं (क्योंकि जाहिर है कि टीआईओ का उपयोग होता है, और यह बहुत विशिष्ट है)। पूर्णांक का निर्माण जिसकी मेमोरी में बाइट्स 0x25 (%), 0x63 (c), 0x00 (\ 0) हैं, कुछ भी (कोई फर्क नहीं पड़ता, इसके बाद शून्य टर्मिनेटर) हम इसके पते को पास कर सकते हैं printfऔर इसे मान लेंगे। एक तार है। ऐसा एक नंबर जो काम करता है वह है -989830363 (0xC5006325)। यह प्रतिबंधों के तहत 77707-989908070 के रूप में बनाना आसान है।

अभी भी समस्या है कि हम किसी भी मान का संदर्भ नहीं दे सकते हैं (क्योंकि हम उन्हें असाइन नहीं कर सकते हैं और क्योंकि हम उपयोग नहीं कर सकते हैं और इसलिए), इसलिए हमें एक सरणी शाब्दिक (int []] {...} का उपयोग करना होगा। हम वास्तव में इसका उपयोग ऊपर बिटमास्क सरणी के लिए भी करते हैं।

  1. कोष्ठक बंद करना

हम अपने सरणियों या कार्यों को बंद करने के लिए ']' 'या'} 'का उपयोग नहीं कर सकते। सौभाग्य से C के पास काम करने वाले खुदाई और ट्रिग्राफ हैं। :>बन जाएगा ], जबकि ??>बन जाएगा }। इसके लिए -trigraphsस्विच करने के लिए जीसीसी की आवश्यकता होती है , क्योंकि यह डिफ़ॉल्ट रूप से ट्रिगर को अनदेखा करता है (मानक के उल्लंघन में)।

  1. बिटवाइज ऑपरेशन

हम &अपने इंडेक्स से बिट्स को मास्क करने के लिए उपयोग नहीं कर सकते हैं , न ही हम %पुराने तरीके से वहां पहुंचने के लिए उपयोग कर सकते हैं । इसलिए हम कार्यान्वयन विशिष्ट व्यवहार पर भरोसा करते हैं। विशेष रूप से हम अपने 32-बिट पूर्णांक को बिट्स खोने के लिए बाईं ओर काफी दूर स्थानांतरित करते हैं, फिर वापस दाईं ओर। उदाहरण के लिए हमारी संख्या के अंतिम 5 बिट्स प्राप्त करने के लिए हम पहले इसे 27 बिट्स (छोड़ते हुए abcde00000...) छोड़ते हैं और फिर इसे दाईं ओर 27 बिट्स (छोड़ते हुए ) में शिफ्ट करते हैं ...00000abcde

  1. विविध मूल्य

हमें पूरे कोड में कुछ और शाब्दिक मूल्यों की आवश्यकता है - ये अरनुल्ड के जेएस उत्तर से लिए गए हैं, प्लस 27 (उपरोक्त कारण के लिए) मेरे द्वारा जोड़ा गया है 9+9+9

3. इसे एक साथ रखना

इन सभी परिवर्तनों के साथ स्रोत का वर्णन यहाँ दिया गया है।

main(_){                // This is our main entry point
--_<88+80+88            // This subtracts 1 from the argument (_) and checks if it is less than 256
    ?                   // If it is less than 256 we 'continue'
printf(                 // first we call printf with...
    (int[:>){           // An integer array that will be interpreted as a string
    77707-989908070     // With the value we determined above, to represent "%c\0\xC5"
    ??>,                // This is a trigraph for }, just as the :> above is a digraph for ]
    ((int[:>){          // We immediately create another integer array
0xE8E8C79E^0xB0B0080,   // Each row is the bit-mask for 32 characters
0xC07E0870^0xE0000C00,
0xCC08099C^0xEE0C008E,
0xE8888989^0xCC00808,
0x9E088990^0x800C0000,
0x990C8888^0x080ECC00,
0xF9C7a088^0x080000C0,
0x9F8C78F8^0x900000??>
[_>>(0xC^0x9):>         // This is {arr}[_>>5] just in a roundabout way
>>(_<<9+9+9>>9+9+9))    // Similarly this is (...)>>(_&0x1F)
<<(70^89)>>(70^89)      // This is <<31>>31 or &1, to check the last bit
?_:' ')                 // If its 1, we print the character, otherwise we print a space
,main(_+9-7):0;         // We recurse, the :0 is the other branch of the if, it terminates execution
??>

अच्छा काम! अच्छी व्याख्या भी। (मैं 100% नहीं हूं, लेकिन विश्वास है कि हेडर को "C (gcc) -trigraphs" पढ़ना चाहिए)
जोनाथन एलन

1
यह बहस के लिए तैयार है। कोड विशिष्ट नहीं है, इसका पूरी तरह से मानक अनुरूप कोड नहीं है, लेकिन मेरी मशीन cc पर यह बिना किसी तर्क के ठीक है। टीआईओ पर अभी कोई अंतर्निहित कंपाइलर नहीं है जो डिफ़ॉल्ट रूप से मानक के अनुरूप है, अगर वहाँ थे (या जीसीसी का एक पुराना निर्माण) तो ट्रिग्राफ बस चेतावनी उत्पन्न करेंगे।
लैंबडाबेटा

G ++ ?:एक्सटेंशन का उपयोग करके , दुर्व्यवहार बिटवाइज़ शिफ्ट modulo 32, 273 बाइट्स
user202729

यह चालाकी है। मैं इसे वैसे ही रखने जा रहा हूं, क्योंकि इस संस्करण में -trigraphsकुछ सी कंपाइलरों पर विकल्प की आवश्यकता नहीं है , जबकि ?:जीसीसी की आवश्यकता होती है -trigraphs
लाम्बेबैटा

6

ब्रेनफक , 635 बाइट्स

++++++++++++++++++++++++++++++++.>+.+.+.+.<...>++++.+.+.<...>++++.+.+.+.<...>++++.+.+.+.+.<...>++++.+.+.+....++++.+.+.<...>++++.<......>+++++++.+.+.+.+.+.<......>+++++++.<...>++++.<..>+++.<...>++++.<..>+++.<......>+++++++.<......>+++++++.<...>++++.<..>+++.<......>+++++++.+.<......>+++++++.<...>++++.<..>+++.<...>++++.<..>+++.+.+.<....>+++++.<..>+++.+.<..>+++.<...>++++.<..>+++.<......>+++++++.+.+.+.<......>+++++++.<...>++++.<..>+++.<...>++++.<..>+++.<......>+++++++.<...>++++.<..>+++.<...>++++.<..>+++.<......>+++++++.<.>++.+.+.+.<...>++++.+.+.<...>++++.+.+.+.<...>++++.+.+.+.+.<...>++++.+.+.+.<...>++++.+.+.<...>++++.+.+.+.+.<..>>-.

इसे ऑनलाइन आज़माएं!

अंत में जावास्क्रिप्ट द्वारा पीटे जाने के जवाब में, मैंने इस बात पर ध्यान दिया कि मैं इससे बाहर क्या कर सकता हूं:

1 बाइट सेल 0 में 32 होने और सेविंग सेल 1 होने से बचाया (केवल एक ही कारण है कि मेरे पास शुरू में इसका दूसरा तरीका था क्योंकि एक त्वरित फिक्स होने के कारण जब OrjanJohansen ने बताया कि मैं उपयोग नहीं कर सकता था ])

1 बाइट एक तीसरी सेल (शुरुआत में 0 पर) को उत्पन्न करने के लिए 255= उत्पन्न करने से बचाई गई-1

2 बाइट्स अक्षर 31 और 36 के बीच के रिक्त स्थान को प्रिंट करके बचाई जाती हैं, बिना उपयोग के, <>लेकिन केवल 32 पर रोककर सेल 0 से प्रिंट करने के लिए जब 31 से 33 के बीच वृद्धि होती है।

ब्रेनफक , 639 बाइट्स

>++++++++++++++++++++++++++++++++.<+.+.+.+.>...<++++.+.+.>...<++++.+.+.+.>...<++++.+.+.+.+.>...<++++.+.+.>....<+++++.+.+.>...<++++.>......<+++++++.+.+.+.+.+.>......<+++++++.>...<++++.>..<+++.>...<++++.>..<+++.>......<+++++++.>......<+++++++.>...<++++.>..<+++.>......<+++++++.+.>......<+++++++.>...<++++.>..<+++.>...<++++.>..<+++.+.+.>....<+++++.>..<+++.+.>..<+++.>...<++++.>..<+++.>......<+++++++.+.+.+.>......<+++++++.>...<++++.>..<+++.>...<++++.>..<+++.>......<+++++++.>...<++++.>..<+++.>...<++++.>..<+++.>......<+++++++.>.<++.+.+.+.>...<++++.+.+.>...<++++.+.+.+.>...<++++.+.+.+.+.>...<++++.+.+.+.>...<++++.+.+.>...<++++.+.+.+.+.>..<+++.

इसे ऑनलाइन आज़माएं!

पहले हम 32 नंबर उत्पन्न करते हैं। फिर हम सिर्फ एक सेल को बढ़ाते हैं और उस सेल और 32 के बीच की छपाई को स्विच करते हैं। स्थिर रूप से बढ़ती हुई संख्याएं ब्रेनफक कुछ अच्छा करती हैं।

जावास्क्रिप्ट को ब्रेनफक से हरा देना अच्छा है, यह अक्सर नहीं होता है!


क्षमा करें, लेकिन ]एक अनुमत चरित्र नहीं है। यद्यपि आपको अभी भी इसे ठीक करने और जावास्क्रिप्ट को हरा करने में सक्षम होना चाहिए। :)
अर्जन जोहान्सन

@ StrjanJohansen तय
लेवल रिवर सेंट

क्षमा करें, आपने जावास्क्रिप्ट खो दिया।
user202729

@ user202729 बहुत अच्छा! फिर भी, मैंने 3 दिनों के लिए जावास्क्रिप्ट पीटा था। जैसा कि मैं छोरों का उपयोग नहीं कर सकता क्योंकि ]अनुमति नहीं है, मुझे लगता है कि मेरा बीएफ जवाब शायद अब इष्टतम है।
लेवल रिवर सेंट

5

जावास्क्रिप्ट (स्पाइडरमोनी) , 1918 1598 1487 1431 बाइट्स

@ उपयोगकर्ता 202729 के लिए 56 बाइट्स का धन्यवाद

print(8<<98,7/7,9-7,7>>97,8>>97,8<<98,8<<98,8<<98,8,9,0xa,8<<98,8<<98,8<<98,0xe,0xf,7+9,8+9,8<<98,8<<98,8<<98,7+0xe,7+0xf,8+0xf,9+0xf,78^87,8<<98,8<<98,8<<98,77^80,70^88,70^89,8<<98,8<<98,8<<98,8<<98,9<<98,70^99,77>>97,8<<98,8<<98,8<<98,98-070,8<<98,8<<98,8<<98,8<<98,8<<98,8<<98,9^070,80^98,80^99,87^99,87^98,9^077,8<<98,8<<98,8<<98,8<<98,8<<98,8<<98,70-9,8<<98,8<<98,8<<98,7^70,8<<98,8<<98,9^77,8<<98,8<<98,8<<98,7^79,8<<98,8<<98,70^0xd,((8<<98)+' ').repeat(8^0xe)+(8^90),((8<<98)+' ').repeat(8^0xe)+89,8<<98,8<<98,8<<98,7^90,8<<98,8<<98,7+89,((8<<98)+' ').repeat(8^0xe)+(7|97),7+97,((8<<98)+' ').repeat(8^0xe)+(77|98),8<<98,8<<98,8<<98,80|99,8<<98,8<<98,8^0x7e,8<<98,8<<98,8<<98,0x7a,8<<98,8<<98,0x7d,0x7e,0x7f,8<<98,8<<98,8<<98,8<<98,7+0x7d,8<<98,8<<98,0x87,0x88,8<<98,8<<98,0x8b,8<<98,8<<98,8<<98,0x8f,8<<98,8<<98,7+0x8b,((8<<98)+' ').repeat(8^0xe)+0x99,0x9a,0x9b,0x9c,((8<<98)+' ').repeat(8^0xe)+(7+0x9c),8<<98,8<<98,8<<98,0xa7,8<<98,8<<98,0xaa,8<<98,8<<98,8<<98,0xae,8<<98,8<<98,78+99,((8<<98)+' ').repeat(8^0xe)+0xb8,8<<98,8<<98,8<<98,0xbc,8<<98,8<<98,0xbf,8<<98,8<<98,8<<98,97+98,8<<98,8<<98,99+99,((8<<98)+' ').repeat(8^0xe)+0xcd,8<<98,0xcf,0xd0,7+0xca,7+0xcb,8<<98,8<<98,8<<98,7+0xcf,0xd7,0xd8,8<<98,8<<98,8<<98,0xdc,0xdd,0xde,0xdf,8<<98,8<<98,8<<98,7+0xdc,7+0xdd,7+0xde,7+0xdf,0xe7,8<<98,8<<98,8<<98,0xeb,0xec,0xed,0xee,8<<98,8<<98,8<<98,7+0xeb,7+0xec,7+0xed,8<<98,8<<98,8<<98,0xf8,0xf9,0xfa,0xfb,0xfc,8<<98,8<<98,0xff)

इसे ऑनलाइन आज़माएं!

कैसे?

इस तथ्य =की अनुमति नहीं है कि जेएस में एक शो-हत्यारा है। हम कोई चर असाइनमेंट नहीं कर सकते हैं, और हम किसी भी तीर फ़ंक्शन का उपयोग नहीं कर सकते हैं।

उपरोक्त कोड के बजाय प्रत्येक संख्या की गणना कर रहा है अलग से, या तो दशमलव, अष्टाधारी या हेक्साडेसिमल (में अनुमति दी अंकों का उपयोग कर , , , और 0xA को 0xf ) और निम्न ऑपरेटरों: , , , , , और ।0789+-/|^<<>>

  1 = 7/7     |   50 = 80^98   |  136 = 0x88    |  216 = 0xd8
  2 = 9-7     |   51 = 80^99   |  139 = 0x8b    |  220 = 0xdc
  3 = 7>>97   |   52 = 87^99   |  143 = 0x8f    |  221 = 0xdd
  4 = 8>>97   |   53 = 87^98   |  146 = 7+0x8b  |  222 = 0xde
  8 = 8       |   54 = 9^077   |  153 = 0x99    |  223 = 0xdf
  9 = 9       |   61 = 70-9    |  154 = 0x9a    |  227 = 7+0xdc
 10 = 0xa     |   65 = 7^70    |  155 = 0x9b    |  228 = 7+0xdd
 14 = 0xe     |   68 = 9^77    |  156 = 0x9c    |  229 = 7+0xde
 15 = 0xf     |   72 = 7^79    |  163 = 7+0x9c  |  230 = 7+0xdf
 16 = 7+9     |   75 = 70^0xd  |  167 = 0xa7    |  231 = 0xe7
 17 = 8+9     |   82 = 8^90    |  170 = 0xaa    |  235 = 0xeb
 21 = 7+0xe   |   89 = 89      |  174 = 0xae    |  236 = 0xec
 22 = 7+0xf   |   93 = 7^90    |  177 = 78+99   |  237 = 0xed
 23 = 8+0xf   |   96 = 7+89    |  184 = 0xb8    |  238 = 0xee
 24 = 9+0xf   |  103 = 7|97    |  188 = 0xbc    |  242 = 7+0xeb
 25 = 78^87   |  104 = 7+97    |  191 = 0xbf    |  243 = 7+0xec
 29 = 77^80   |  111 = 77|98   |  195 = 97+98   |  244 = 7+0xed
 30 = 70^88   |  115 = 80|99   |  198 = 99+99   |  248 = 0xf8
 31 = 70^89   |  118 = 8^0x7e  |  205 = 0xcd    |  249 = 0xf9
 32 = 8<<98   |  122 = 0x7a    |  207 = 0xcf    |  250 = 0xfa
 36 = 9<<98   |  125 = 0x7d    |  208 = 0xd0    |  251 = 0xfb
 37 = 70^99   |  126 = 0x7e    |  209 = 7+0xca  |  252 = 0xfc
 38 = 77>>97  |  127 = 0x7f    |  210 = 7+0xcb  |  255 = 0xff
 42 = 98-070  |  132 = 7+0x7d  |  214 = 7+0xcf  |
 49 = 9^070   |  135 = 0x87    |  215 = 0xd7    |

नोट: बिटवाइज़ शिफ्ट्स प्रोसेस्ड मोडुलो । ECMAScript विनिर्देश में यह स्पष्ट रूप से कहा गया है :32

चलो shiftCount लेकिन सब बाहर मास्किंग का परिणाम कम से कम महत्वपूर्ण 5 के टुकड़े हो rnum , है कि, गणना rnum और 0x1F।

उदाहरण के लिए, 8<<98वास्तव में 8<<2(जो कि )।32


32जैसा कि 8<<9-7प्रत्येक के लिए एक बाइट बचाता है 32
TFeld

1
@TFeld वास्तव में, मैं अपने सॉल्वर में बदलाव जोड़ रहा था, जो अभी-अभी मिला है 32 = 8<<98(क्योंकि )। कुछ और भावों को इस तरह छोटा किया जा सकता है। अभी तक उस पर कार्य कर रहा हूं। 982(mod32)
अरनौलद

3
"शो-किलर" या "फन-मेकर"?
जोनाथन एलन

2
@JonathanAllan ;-) उत्तरार्द्ध पूर्व से बाहर आता है!
अरनौलद

क्षमा करें, अगर मैं बेवकूफ हूं, लेकिन आप स्पाइडरमंकी के पुराने संस्करण से क्यों जुड़ रहे हैं?
सुलैमान उको

4

हास्केल, 623 617 614 594 360 342 बाइट्स

संपादित करें: -234 बाइट्स एक स्ट्रिंग के रूप में एक पैटर्न एन्कोडिंग पाकर @Lynn के लिए धन्यवाद। -18 बाइट्स थैंक्स टू @ अर्जन जोहान्सन।

map(\i->cycle(8+8+8+8:filter(\_->" XXXX   XXX   XXXX   XXXXX   XXX    XXX   X      XXXXXX      X   X  X   X  X      X      X   X  X      XX      X   X  X   X  XXX    X  XX  X   X  X      XXXX      X   X  X   X  X      X   X  X   X  X      X XXXX   XXX   XXXX   XXXXX   XXXX   XXX   XXXXX  X"!!i>' ')(pure i))!!9)(take(0xf8+8)(iterate(9-8+)0))

इसे ऑनलाइन आज़माएं!

यह काम किस प्रकार करता है

map(\i->    )                   -- map the lambda over the
        (take(0xf8+8)           -- first 256 elements of
           (iterate(9-8+)0))    -- the list [0,1,2,....]

                                -- the lambda is:

    cycle                       -- make an infinite list by repeating the list
      8+8+8+8:                  -- wih element 32 followed by
                  pure i        -- the singleton list with 'i'
       filter                   -- but keep 'i' only if
          \_->" XXXX..."!!i>' ' -- the pattern has an 'X' at index 'i', else
                                -- remove it to make an empty list
                                -- i.e. the cycled list is, if the pattern is
                                -- a space: [32,32,32,32,32,32,32,32,32,32,...]
                                -- an 'X':  [32, i,32, i,32, i,32, i,32, i,...]
                                --                                       ^
                                --                        9th element ---/ 
                      !!9       -- pick the 9th element which is the result
                                -- of the lambda

3
आप बाइट्स का एक समूह (id:pure(\_->8+8+8+8))बनाकर उसे अनुक्रमित कर सकते हैं until((||" XXXX XXX XXXX XXXXX XXX XXX X XXXXXX X X X X X X X X X XX X X X X XXX X XX X X X XXXX X X X X X X X X X X X XXXX XXX XXXX XXXXX XXXX XXX XXXXX X"!!i<'X').(<1))pred 1
लिन

1
342 बाइट्स के साथ filterके बजाय untilशाखा में (और cycleएक अतिरिक्त से बचने के लिए ++pure(...))।
अर्जन जोहान्सन

3

ब्रेन-फ्लैक -r, 4190 4188 बाइट्स

(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())())())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())()<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()())())())())())())()<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())()<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()())()<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())()<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()())())()<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())())())()<((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))>()()()())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())()<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()())())())())()<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())()<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())()<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()())()<(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())>())())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())())())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())())())()<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()())())())())())()<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()())

इसे ऑनलाइन आज़माएं!

यह एक ब्रेन-आलोचना के लिए एक छोटा सा मुश्किल है क्योंकि हम उपयोग नहीं कर सकते ]या }। मतलब केवल उपयोगी पात्र हैं <>()

यहाँ एक हास्केल कार्यक्रम है जो मुझे यह लिखने में मदद करता है

यह सिर्फ स्किपिंग को गिनता है जहां रिक्त स्थान होना चाहिए और उन लोगों को व्यक्तिगत रूप से धक्का देना चाहिए।


क्या यह बिल्कुल इष्टतम है?
user202729

@ user202729 मुझे संदेह नहीं है। हालांकि यह हो सकता है। वहाँ एक टन के झालर का कमरा नहीं है लेकिन मैं यह साबित करने में सक्षम होने से बहुत दूर हूं कि यह इष्टतम है। यद्यपि हमारे पास {}एक कंप्यूटर खोज नहीं है, जो वास्तव में परिमित समय में इष्टतम खोज सकती है।
तदर्थ गार्फ हंटर

मैं अंत में एक प्रोग्राम लिख रहा हूं जो इष्टतम समाधान उत्पन्न करता है, हालांकि यह जितना मुझे उम्मीद है उससे थोड़ा धीमा है। मैं अभी भी तेजी से दौड़ता हूं, हालांकि।
user202729

@ user202729 खैर यह इष्टतम नहीं था। मुझे एक छोटा मिला।
तदर्थ गार्फ हंटर

3

जावास्क्रिप्ट (स्पाइडरमोंकी) , 1001 919 789 441 बाइट्स

print(/u/.exec().map.call('0777700077700077770007777700077700007770007000000777777000000700070070007007000000700000070007007000000770000007000700700070077700007007700700070070000007777000000700070070007007000000700070070007007000000707777000777000777700077777000777700077700077777007',''.repeat.bind(Number)).map(/u/.exec().find.bind(/()/.exec().fill(Number.bind(0,88-070)).fill(/u/.exec().fill,!0),''.indexOf)).map(Map.call.bind(Map.call)))

इसे ऑनलाइन आज़माएं!

अंत में बीएफ की धड़कन !!!

सामान्य विचार

लंबे स्ट्रिंग स्ट्रिंग के प्रत्येक वर्ण को उसके सूचकांक या 32 में बदलें, मूल्य पर निर्भर करता है।

Array.prototype.map? सरणी कैसे प्राप्त करें

वस्तु गुणों तक पहुँचने के लिए कौन सी वस्तुएँ सुलभ हैं (क्योंकि ]अनुमति नहीं है, इसलिए यह देखने के लिए कि बल किसी पहचानकर्ता से मेल खाने वाले नाम के साथ गुण सुलभ है)।

RegExp.prototype.execमैच होने पर एक सरणी जैसी वस्तु देता है। जब कोई तर्क प्रदान नहीं किया जाता है, तो तर्क मेल खाता है undefined, इसलिए /u/.exec()मेल खाता है और एक सरणी लौटाता है।

2 अलग-अलग वर्णों पर 2 मनमाना भिन्न मान प्राप्त करें

हम चाहते हैं (x,y)=>x=='0'?32:y, लेकिन हम उपयोग नहीं कर सकते =

इसके बजाय, हम करने जा रहे हैं

new Array(a)
    .map(x=>x=='0'?()=>32:function()this)
    .map((x,y,z)=>x.call(y,z))

हम mapकुछ फ़ंक्शन पर स्ट्रिंग कर सकते हैं , लेकिन =>अनुमति नहीं है, इसलिए केवल कुछ फ़ंक्शन का उपयोग किया जा सकता है। इसमें बाध्य thisऔर कुछ बाध्य तर्क हो सकते हैं (इसलिए इसका रूप है (x,y,z)=>pre_filled_function.call(pre,filled,args,etc,x,y,z))

कार्यों की सूची पर विचार करने के बाद ( repeat exec bind create map indexOf replace fill find reduce filter findIndex call bind apply), मैं तय करता हूं कि निम्नलिखित कार्यों का उपयोग किया जाएगा (अन्य सभी संयोजनों पर विचार करने के बाद)

  • repeat: संख्या -> विभिन्न तार।
  • find: thisArg -> ऐरे मैच में पहला तत्व।

सामान्य विचार होगा:

[].map.call('07070707...', (x,y,z)=>[elem1,elem2].find(somefunction,x,y,z)

जहां somefunctionपर विचार करता है thisतर्क ( x) और पहला तर्क ( elem1या elem2) और बदले क्या यह मेल खाता है।

अंतिम तीर फ़ंक्शन को फिर से लिखा गया है [].find.bind([elem1,elem2],somefunction)

अर्रे शाब्दिक

हम सरणी प्राप्त करने के लिए रेगेक्स निष्पादन का उपयोग कर सकते हैं, और fillयह विभिन्न मूल्यों के साथ। उदाहरण के लिए, /()/.exec()एक लंबाई -2 सरणी देता है, फिर हम इसे आवश्यकतानुसार भर सकते हैं।

somefunctionहमें किसकी आवश्यकता है?

हमें एक ऐसी चीज़ की ज़रूरत है, जो एक सच्चाई / फ़र्ज़ी मान लौटाती है this(जो 2 कार्यों में से 1 है जिसे हम वापस करने जा रहे हैं) और पहला तर्क (एक स्ट्रिंग या सरणी होना चाहिए)।

उसके लिए, मैंने उपयोग किया indexOf- यह फर्जी मान लौटाता है यदि पहला तर्क तर्क का उपसर्ग है this

फ़ंक्शन शाब्दिक का प्रतिनिधित्व करते हैं


1
स्पष्टीकरण के अंत तक ठोकरें खाता है और एक शाखा से लटकती हुई हवाएं
Novrjan Johansen

2

टीआई-बेसिक (83 श्रृंखला), 578 बाइट्स

8XFact8-ΔTbl
seq(X and XX≤8+8 or 8≤X and X≤Xmax or 7+7≤X and X<9+9 or 7+7+7≤X and X<8π or 9π<X and X<πXmax or 9 nCr 7≤X and X+X<77 or X=7²-7 or 7²≤X and X≤7*9-9 or X=70-9 or X=8²+ΔTbl or X=78-Xmax or X=9*8 or X=89-7-7 or X=89-7 or X=89 or X=900-807 or X=88+8 or 809-707<X and X≤97+77-70 or 9X=999 or 8X=990-70 or X=888-770 or X=899-777 or 8*7+77-8≤X and X+X<Ans or 7²X/77=77+7 or 999+77<8X and 7X<970-9-7 or 8²X=8888+8 or X+X=99+99+88 or 7X=9099-8077 or 9+8≤X/9 and X<997-770-70 or X=99+8² or X=87+80 or X=80+90 or X=87+87 or X=87+90 or X=87+97 or X=98+90 or X=999-808 or X=97+98 or X=99+99 or X=99+99+7 or 9²8<πX and X+X+X≤70*9 or 70π-π-π<Xand X+X+X≤9²8 or 70π<X and X<70π+π or 997-770≤X and X+X+X≤99*7 or 77+79+79≤X and X+8+9≤Ans or 77π<X and X<Ans-Xmax or 7*8*9-8≤X+X and X+X≤7*8*9 or X=Ans,X,0,Ans
8XFact+Ansseq(X,X,⁻8XFact,70π+π

टीआई-बेसिक का अपना बहुत ही खास "कोड-पेज" है जिसमें अजीब डिजाइन विकल्प हैं जैसे कि स्पेस कैरेक्टर को 0x29 से ऊपर ले जाना ताकि 0x20 randM(कमांड हो सके ।

यह पता लगाने के लिए मुश्किल है कि सही प्रकार के ऑब्जेक्ट को आउटपुट करने के लिए TI-Basic कैसे प्राप्त करें। स्ट्रिंग्स कई कारणों से काम नहीं करेगी: टोकन का उपयोग किए बिना एक टोकन को संदर्भित करने का कोई तरीका नहीं है, और यह भी कि हमें "चरित्र की अनुमति नहीं है । हम सिर्फ एक सूची नहीं लिख सकते, क्योंकि {और }निषिद्ध हैं। हमें मैट्रिसेस के लिए [और ]वर्णों की अनुमति है , लेकिन 256 बाइ मैट्रिक्स 1 काम नहीं करता है, क्योंकि मैट्रिसेस को अधिकतम 99 पंक्तियों और कॉलमों में अनुमति दी जाती है। हम उपयोग नहीं कर सकते चर को असाइन करना, और हम सूची चर में नहीं मिल सकता है ʟया L₁के माध्यम से L₆वैसे भी।

इसलिए, हम असमानताओं के साथ एक जटिल तार्किक सूत्र लिखते हैं, जो कहता है कि जब कोई चरित्र उन लोगों में से एक होता है जिन्हें हम आउटपुट करना चाहते हैं। फिर हम उन पदों और अन्य जगहों पर seq(सूची बनाने के लिए कमांड का उपयोग करते हैं। वहां से, एक और कमांड और कुछ अंकगणित काम खत्म कर देते हैं।10seq(

वह रोमांचक हिस्सा था; बाकी कांस्टेंट गोल्फिंग कर रहा है और मैंने शायद उतना संभव नहीं किया है। मेरे द्वारा उपयोग की जाने वाली चाल में से एक यह है कि डिफ़ॉल्ट रूप से, Xmax10 है, XFact4 है, और ΔTbl1 है।


जबकि 1 * 256 मैट्रिक्स काम नहीं करेगा, क्या आप 3 * 99 मैट्रिक्स की तरह कुछ बना सकते हैं और मैट्रिक्स को इंडेक्स करने के लिए div / mod का उपयोग कर सकते हैं?
user202729

ओह, हम भी चीजों को अनुक्रमित नहीं कर सकते, क्योंकि (निषिद्ध है।
मिशा लावरोव

क्या सशर्त अभिव्यक्ति है (यदि तत्कालीन बी सी सी) या फर्श या मॉड? संख्या परिशुद्धता ~ 15 दशमलव अंक सही है?
user202729

ये सभी मौजूद हैं। हम सिर्फ एक मैट्रिक्स प्रविष्टि के साथ नहीं मिल सकते हैं [A](I,J), और जो मैं समझता हूं कि आप [A](int(I/99),I-99int(I/99))मैट्रिक्स के सभी तत्वों को पढ़ने के लिए कुछ करना चाहते हैं [A]- हम भी ऐसा नहीं कर सकते। (वैसे, )निषिद्ध भी है। सौभाग्य से, हमें समाप्त होने वाले कोष्ठकों को बंद करने की आवश्यकता नहीं है, लेकिन यह सीमित है कि हम कई आदेशों का उपयोग कैसे कर सकते हैं।)
मिशा लावरोव

मैं एक सरणी को एन्कोड करने के लिए एक नंबर का उपयोग करने के बारे में सोच रहा हूं, एक बिटमास्क के समान। जैसे (123456789 >> एक्स) और 1 पायथन में।
user202729

1

ब्रेन-फ्लैक -r, 3894 बाइट्स

(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())<((())((()())()))>)))(((((((()()()()()()()())(()()()()()()()()())(()()()()()()()()()())()()()()())))<((((((((()()()()()()()()()()()()()())((((((((((()()()()()()()()()()()()()()())((()()()()()()()()()()()()()()()())()))))<((((((((((((()()()()()()()()()()()()()()()()()()()()())())())())())()()()()()()())))<((((((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()())())())()))))()()()())())())>)))()()()()()()()()()())>))))))()()())())())())())())<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()()())>)))())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()()())<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()()())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()()())())<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()()())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())())())<((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))>()()()()())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()()())())())())<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()()())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()()())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())<((((((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))))))>()()()()()()())<(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())>()())())())())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())())())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())())())())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())())())())())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())())())())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())())())<(((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())))>()()()())())())())())<((()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()))>()()())

इसे ऑनलाइन आज़माएं!

मैंने किसी भी आउटपुट के लिए इष्टतम ब्रेन-फ्लैक प्रोग्राम बनाने के लिए एक कार्यक्रम लिखा था। मान लो की:

  • <> उपयोग नहीं होता है
  • मेरा कार्यक्रम सही है

, तो यह समाधान इष्टतम है।

हालांकि, मैं थोड़ा आलसी था और एक ऐसे समाधान को लागू करता था, जिसके साथ आने के लिए बहुत मुश्किल नहीं है, और यह 1m13s (समय या तो) में चल रहा है। मैं बाद में अधिक कुशल समाधान की तलाश कर सकता हूं।O(n5)


1

पायथन 2 , 162 157 बाइट्स

चेतावनी : अगोचर वर्ण आगे!

print map(lambda(i,x):(x>'0'and i-0xe0/7)+0xe0/7,enumerate(bin(reduce(lambda x,y:(x<<0xd-7)-x+y,bytearray('7?QcZ;+BqiQJUS!?B0W![<LBU7X!frQd(SQdB\0')))))

इसे ऑनलाइन आज़माएं!

TFeld के मौजूदा जवाब के आधार पर , लेकिन कुछ बदलावों के साथ:

A एक bytearrayके समान है strजो इसे चलने योग्य है, हालाँकि, इसे पुनरावृत्त करना पूर्णांक देता है, वर्ण नहीं। हम इसका उपयोग बेस-एन शाब्दिक रूप से एनकोड reduce(lambda x,y: x*N+y, my_bytearray)करने और इसे डीकोड करने के लिए कर सकते हैं।

क्योंकि पायथन 2 फ़ाइलों में डिफ़ॉल्ट रूप से एन्कोडिंग नहीं है, केवल ASCII (0..127) में वर्णों का उपयोग किया जा सकता है। नल बाइट, newlines, backslashes और उद्धरण 1 अधिक बाइट लेते हैं।

इसके अलावा, सभी आधारों का उपयोग करना संभव नहीं है।

मैंने उन प्रतिबंधों को देखते हुए सबसे छोटा प्रतिनिधित्व खोजने के लिए एक कार्यक्रम लिखा n

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