क्लस्टरिंग आकार पर काबू पाने


37

फ्लैश स्टोरेज की विश्वसनीयता के साथ, आपने अपने सभी कार्यक्रमों को उन अच्छे पुराने 1,440 KiB फ्लॉपियों में से एक पर संग्रहीत करने का निर्णय लिया। हालाँकि, 3,000 प्रोग्राम भी नहीं कॉपी करने के बाद, डिस्क भरी हुई थी। कैसे भी संभव है? कोड गोल्फ की कला में कुशल होने के नाते, आपके अधिकांश कार्यक्रम भी 100 बाइट्स लंबे नहीं होते हैं, इसलिए कमरे में बहुत कुछ होना चाहिए ...

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

अधिक फ्लॉपी खरीदें? कभी नहीँ! क्लस्टर आकार एक समस्या से कम होगा यदि हम बस एक फ़ाइल में कई कार्यक्रमों को बचाते हैं, जो संभव है क्योंकि विभिन्न संकलक / व्याख्याकार एक ही स्रोत कोड के लिए अलग-अलग व्यवहार करेंगे।

कार्य

एक पॉलीग्लॉट लिखें जो एक एकल क्लस्टर (512 बाइट्स या उससे कम) में फिट बैठता है और निम्नलिखित में से कई कार्यों को यथासंभव हल करता है।

  1. सभी इनपुट पढ़ें और इसे प्रिंट करें।

  2. प्रिंट हैलो, वर्ल्ड!

  3. इनपुट के रूप में एक लाइन / तर्क ( नाम ) पढ़ें और जन्मदिन मुबारक, [नाम] प्रिंट करें!

  4. सभी इनपुट पढ़ें और I love tab प्रिंट करें! यदि इसमें एक या एक से अधिक टैबलेटर (0x09) हैं और मुझे रिक्त स्थान से नफरत है! अगर यह नहीं है।

  5. दो पंक्तियों / तर्कों को पढ़ें और एक सत्य मान को प्रिंट करें यदि दूसरा पहले का विकल्प है और नहीं तो एक मिथ्या मूल्य है।

  6. एक पंक्ति / तर्क पढ़ें और एक सत्य मान प्रिंट करें यदि इसके अक्षर सख्ती से आरोही क्रम में हैं और यदि नहीं तो एक गलत मूल्य।

  7. एक पंक्ति / तर्क और एक चरित्र पढ़ें और उस चरित्र की सभी घटनाओं के अनुक्रमित को प्रिंट करें।

  8. एक पंक्ति / तर्क पढ़ें और किसी भी वर्ण को अधिकतम घटनाओं के साथ प्रिंट करें।

  1. 0 और 255 के बीच दो पूर्णांक पढ़ें और उनकी राशि प्रिंट करें।

  2. 0 और 255 के बीच एक एकल पूर्णांक पढ़ें और उसके विभाजन के भागफल और अवशेष को 7 से प्रिंट करें ।

  3. 1 और 255 के बीच एक पूर्णांक पढ़ें और एक सत्य मान प्रिंट करें यदि यह एक समग्र संख्या (न तो 1 और न ही प्राइम) और न होने पर मिथ्या मूल्य है।

  4. 1 और 255 के बीच एक पूर्णांक पढ़ें और एक सत्य मान प्रिंट करें यदि यह 2 की शक्ति है और नहीं तो एक मिथ्या मूल्य।

  5. 0 और 255 के बीच दो पूर्णांक पढ़ें और बड़े को प्रिंट करें।

  6. 0 और 255 के बीच एक दशमलव पूर्णांक पढ़ें इसके हेक्साडेसिमल प्रतिनिधित्व को प्रिंट करें।

  7. 0 और 255 के बीच एक एकल पूर्णांक पढ़ें और इसका हैमिंग वजन (1-बिट्स की संख्या) प्रिंट करें।

  8. 1 और 13 के बीच एक पूर्णांक n पढ़ें और F n , n th फाइबोनैचि संख्या प्रिंट करें ।

    उदाहरण के लिए, इनपुट के लिए 13, प्रिंट करें 233

  1. इनपुट की एक लाइन / तर्क पढ़ें और इसे फ्रेम करें।

    उदाहरण के लिए, इनपुट के लिए Programming Puzzles & Code Golf, इसे प्रिंट करें:

    +---------------------------------+
    | Programming Puzzles & Code Golf |
    +---------------------------------+
    
  2. वर्णों का एक आयताकार ब्लॉक पढ़ें और इसे एक चौथाई मोड़ दक्षिणावर्त घुमाएं।

    उदाहरण के लिए, इनपुट के लिए

    tye
    xll
    epb
    tma
     id
     sa
    s e
    i r
    hsn
    Tiu
    

    इसे प्रिंट करें:

    This  text
    is  simply
    unreadable
    
  3. 1 और 40 के बीच एक पूर्णांक पढ़ें और उस पक्ष की लंबाई के हीरे को प्रिंट करें।

    उदाहरण के लिए, इनपुट के लिए 3, इसे प्रिंट करें:

      /\
     /  \
    /    \
    \    /
     \  /
      \/
    
  4. इसे प्रिंट करें:

    ....@@@@....@@@@....@@@@....@@@@
    ....@@@@....@@@@....@@@@....@@@@
    ....@@@@....@@@@....@@@@....@@@@
    @@@@....@@@@....@@@@....@@@@....
    @@@@....@@@@....@@@@....@@@@....
    @@@@....@@@@....@@@@....@@@@....
    ....@@@@....@@@@....@@@@....@@@@
    ....@@@@....@@@@....@@@@....@@@@
    ....@@@@....@@@@....@@@@....@@@@
    @@@@....@@@@....@@@@....@@@@....
    @@@@....@@@@....@@@@....@@@@....
    @@@@....@@@@....@@@@....@@@@....
    ....@@@@....@@@@....@@@@....@@@@
    ....@@@@....@@@@....@@@@....@@@@
    ....@@@@....@@@@....@@@@....@@@@
    @@@@....@@@@....@@@@....@@@@....
    @@@@....@@@@....@@@@....@@@@....
    @@@@....@@@@....@@@@....@@@@....
    ....@@@@....@@@@....@@@@....@@@@
    ....@@@@....@@@@....@@@@....@@@@
    ....@@@@....@@@@....@@@@....@@@@
    @@@@....@@@@....@@@@....@@@@....
    @@@@....@@@@....@@@@....@@@@....
    @@@@....@@@@....@@@@....@@@@....
    

स्कोरिंग

एक एकल 512-बाइट क्लस्टर क्लस्टर में फिट होने वाली एकल फ़ाइल में सबसे अधिक प्रोग्राम को शामिल करने का प्रबंधन करने वाला उत्तर। बाइट्स गिनती से टूट जाते हैं (कम बेहतर होता है)।

अतिरिक्त नियम

  • प्रत्येक कार्य के लिए आप अपने स्कोर के लिए दावा करते हैं, उसी फ़ाइल (बाइट प्रति बाइट) को आपकी पसंद की भाषा में - एक पूर्ण प्रोग्राम का गठन करना चाहिए - जो इस विशेष कार्य को हल करता है।

  • प्रत्येक कार्य को एक अलग भाषा में हल करना होगा।

    यदि वे एक ही भाषा के विभिन्न संस्करण नहीं हैं तो भाषाएं अलग-अलग होती हैं। उदाहरण के लिए, केवल एक जावास्क्रिप्ट, एक पायथन और एक TI-BASIC है, लेकिन C, C ++, ऑक्टेव और MATLAB चार अलग-अलग भाषाएं हैं।

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

    इसके अलावा, भाषा को 9 सितंबर, 2015 से पहले प्रकाशित और कार्यान्वित किया जाना चाहिए।

  • आपके कंपाइलर / दुभाषिया को अपेक्षित व्यवहार उत्पन्न करने के लिए किसी भी गैर-मानक झंडे की आवश्यकता नहीं हो सकती है।

    इस नियम के अपवादों में किसी विशेष भाषा को निर्दिष्ट करने के लिए, (एकल) फ़ाइल से प्रोग्राम को पढ़ने या किसी बैनर को दबाने के लिए आवश्यक झंडे शामिल हैं।

  • प्रत्येक कार्य के लिए इनपुट में मुद्रण योग्य ASCII वर्ण (0x20 से 0x7E) और लाइनफ़ीड (0x0A) शामिल होंगे, और यह लंबाई में 255 बाइट्स से अधिक नहीं होगा ।

  • सभी पूर्णांकों को दशमलव या एकरी में पढ़ा जा सकता है, जब तक कि कार्य में अन्यथा न कहा गया हो।

  • अमान्य इनपुट के लिए व्यवहार अपरिभाषित है।

  • आप STDIN (या इसके निकटतम विकल्प) या कमांड-लाइन तर्कों के रूप में इनपुट पढ़ सकते हैं।

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

    यदि इनपुट टुकड़ों में से एक एक पंक्ति है, तो केवल संभव सीमांकक एक लाइनफीड है।

  • STDOUT (या निकटतम विकल्प) के लिए आउटपुट प्रिंट करें। STDERR के सभी आउटपुट को नजरअंदाज कर दिया जाएगा।

  • प्रत्येक कार्य के लिए, मानक नियम लागू होते हैं।

    विशेष रूप से, इसमें आउटपुट द्वारा हार्ड-कोडिंग के अपवाद के साथ डिफ़ॉल्ट रूप से निषिद्ध लूपॉल्स शामिल हैं , जिन्हें इस चुनौती के लिए स्पष्ट रूप से अनुमति दी गई है।


1
क्या जावास्क्रिप्ट और कॉफ़ीस्क्रिप्ट अलग-अलग हैं जिन्हें अलग-अलग भाषाएँ माना जाता है?
डाउनगेट

हां, उन लोगों की गिनती अलग है।
डेनिस

17
अपनी चुनौती # 4 बकवास है> :(
दरवाज़े

उद्धरण: STDERR के सभी आउटपुट को नजरअंदाज कर दिया जाएगा। क्या इसका मतलब यह है कि जब हम स्क्रिप्ट / प्रोग्राम को कॉल करते हैं 2>/dev/nullऔर स्टडआउट को सही आउटपुट मिलता है, तो यह ठीक है? बस तसल्ली के लिए।
कैबी 407

2
@ Cabbie407 ठीक है। मेटा पर आम सहमति के अनुसार , यह नियम वास्तव में सभी चुनौतियों के लिए डिफ़ॉल्ट रूप से लागू होता है । मैं सिर्फ यह सुनिश्चित करना चाहता था कि हर कोई इससे अवगत हो।
डेनिस

जवाबों:


17

12 भाषाएं, 418 बाइट्स

"1\"# &&+.@\""" "" "
#=
''''
<<s
""'("']0=~2base{+}*}
 ?
 :_7/!\_7%!@
"
R"Happy Birthday, "[?S"!"*"
>0[0>i:0(?v:{)?v0n;\!/
$'main';n1< .95<
 \@-[I love tabs!]o#
  \ >qi---@
( @-[ ]e<''';print hex(
input())#-[I hate spaces!]o#"]];ri:X{_~X+S*'/@S*_'\4$N}%_sW%1>"))?(!?)
'''=#print(([1 1;1 0]^int(readline()))[1,2])
#=
Tr is here.
>Tr, Hello, World!
>X Tr
s
l=gets
a='+-'+?-*~/$/+'-+'
puts a+'
| %s |
'%l+a#=#.91<0#'''#";

यह एक मजेदार चुनौती है। इसमें अधिक भाषाओं को फिट करना मुश्किल है, लेकिन इसके साथ कई बाइट्स के साथ मैं शायद एक और के बारे में कर सकता हूं।

2 डी भाषाओं का कृतज्ञतापूर्ण उपयोग करता है। ध्यान दें कि बीच पर चार [ ]पर @-[ ]e<लाइन एक टैब है। इसके अलावा, यह \nकाम करने के लिए ट्रांसक्रिप्ट के लिए लाइन एंडिंग की आवश्यकता है ।

प्रस्तावना (कार्य 1 / बिल्ली)

( 
      )?(!?)

?(!?),[.,]बीएफ में सिर्फ एक सीधा अनुवाद है । प्रीलोड ()लूप्स BF []लूप्स की तरह काम करते हैं , इसलिए (सबसे बाएं कॉलम )में कोर प्रोग्राम से पहले सब कुछ अनएक्सपेक्टेड है।

प्रील्यूड के वाक्यविन्यास नियमों का अर्थ है कि कोष्ठकों का मिलान (बाएं से दाएं कॉलम-वार पढ़ना) किया जाना चाहिए, और प्रति कॉलम केवल एक कोष्ठक हो सकता है। इसके अलावा, इसमें फिट होने के लिए यह एक बहुत आसान भाषा है।

सुनिश्चित करें कि NUMERIC_OUTPUTकरने के लिए सेट कर दिया जाता Falseआप अजगर दुभाषिया उपयोग कर रहे हैं।

TRANSCRIPT (टास्क 2 / नमस्ते दुनिया)

Tr is here.
>Tr, Hello, World!
>X Tr

TransCRIPT इंटरएक्टिव फिक्शन पर आधारित एक विषयगत एसोलैंग है। TRANSCRIPT द्वारा मान्यता प्राप्त लाइनों को नजरअंदाज नहीं किया जाता है, जिससे इसमें फिट होना आसान होता है।

Tr is here.एक Trस्ट्रिंग चर घोषित करता है , और दूसरी पंक्ति चर की सामग्री को सेट करती है Hello, World!X Tr( Xजांच के लिए) फिर स्ट्रिंग को आउटपुट करता है।

हालाँकि ट्रांसक्रिप्ट में फिट होना बहुत आसान है, यह एक बहुत ही अच्छी भाषा है, इसलिए मैंने इसे सबसे आसान चुनौती बना दिया।

विखंडन (कार्य 3 / जन्मदिन संदेश)

R"Happy Birthday, "[?S"!"*
                   \!/

जो पहले भाग को प्रिंट करता है, एक छोटे 2 डी लूप के साथ इनपुट को काटता है, फिर अनुगामी विस्मयादिबोधक चिह्न को आउटपुट करता है। यह Rदर्शाता है कि एक परमाणु यहाँ से दाहिनी ओर चलना शुरू करता है, जो उपयोगी है क्योंकि इस कार्यक्रम को कहीं भी स्थानांतरित किया जा सकता है।

रेल (टास्क 4 / टैब)

$'main'
 \@-[I love tabs!]o#
  \ >qi---@
  @-[ ]e<
         -[I hate spaces!]o#

विखंडन की तरह, रेल एक २ डी भाषा है जिसका लाभ कहीं भी ले जाने में सक्षम होने के लिए है। से निष्पादन शुरू होता है $के mainसमारोह, दक्षिण की ओर बढ़।

पहले हम \एस नीचे सिर करते हैं , बाईं ओर मुड़ते हैं -, जिससे [<tab>]एक टैब धक्का होता है। e<तब ईओएफ पर आधारित शाखाएं - यदि ईओएफ, हम नीचे सिर करते हैं और "I hate spaces!"रोकने से पहले प्रिंट करते हैं , अन्यथा हम सिर करते हैं। यदि हम ऊपर की ओर जाते हैं, तो हम अगले चार्ट को पढ़ते हैं और टैब के साथ तुलना करते हैं, एक बार फिर शाखा करते हैं - यदि टैब, हेड अप और प्रिंट करने "I love tabs!"से पहले प्रिंट करते हैं , तो नीचे सिर और इनपुट लूप जारी रखें।

यह कार्यक्रम बहुत महंगा है, लेकिन जब से ट्रांसक्रिप्ट ने हैलो वर्ल्ड लिया तब से रेल के लिए उपयुक्त और उपयुक्त कार्य करना कठिन था।

> <> (कार्य 6 / आरोही इनपुट)

"1\"#      \""" "" "


>0[0>i:0(?v:{)?v0n;
       ;n1< .95<


        .91<

प्रिंट 1अगर सख्ती से आरोही, 0अन्यथा।

> <> एक और 2 डी भाषा है, और निष्पादन ऊपर बाईं ओर से शुरू होता है। "..."स्ट्रिंग मोड है, जो एक समय में आंतरिक वर्णों को धकेलता है। पहली स्ट्रिंग के बाद हम हिट करते हैं #, जो आईपी बाईं ओर को प्रतिबिंबित करता है, अधिक तारों को धकेलता है और मारने से पहले चारों ओर लपेटता है (> <> टॉरॉयडल) \, एक दर्पण जो हमें ऊपर की तरफ प्रतिबिंबित करता है।

कार्यक्रम के निचले भाग में है .91<, जो हमें टेलीपोर्ट करता है (9, 1), जहां मुख्य कार्यक्रम है। इसके बाद 0[तार से सभी कबाड़ को हटा दिया जाता है, 0अंतिम चार रीड पढ़ने का प्रतिनिधित्व करने के लिए एक शून्य को धक्का देता है, और इसके बाद यह एक बार में एक चार्ट पढ़ रहा है, यह सुनिश्चित करते हुए कि हम अभी भी आरोही हैं।

टेलीपोर्टिंग के बजाय कोर प्रोग्राम को नीचे ले जाना बेहतर है, लेकिन यदि आवश्यक हो तो मैं बाद में इससे निपटूंगा।

Befunge (कार्य 9 / अतिरिक्त)

"1\"# &&+.@

यहां पाए गए दुभाषिया के साथ परीक्षण किया गया । यह एक बहुत ही सीधा कार्यक्रम है, जिसमें एक बेकार स्ट्रिंग को धकेलना और #अंतरिक्ष में कूदना शुरू होता है। उसके बाद यह सिर्फ कोर प्रोग्राम है &&+.@

भूलभुलैया (टास्क 10 / Divmod 7 से)

"1
 =
 '
 <
""'("']
 ?
 :_7/!\_7%!@

आसानी से, 'और "भूलभुलैया में एनओपी हैं जो भूलभुलैया में चलने योग्य मार्ग की तरह काम करते हैं। मैं गन्दा नेविगेशन छोड़ दूँगा, लेकिन मूल रूप से हम हिट करने से पहले बहुत सारे मोड़ और घूम रहे हैं ?, जो कि कोर प्रोग्राम की शुरुआत है।

प्रील्यूड (उदाहरण के लिए प्रस्तावना ?में इनपुट पढ़ा जाता है) के लिए कार्यक्रम काफी फ्लश नहीं है ।

अजगर 2 (कार्य 14 / हेक्साडेसिमल)

"1\"# &&+.@\""" "" "
#=
''''
xxx
xxx''';print hex(
input())#xxx
'''
xxx
xxx'''#";

xxxरों बहु तार या टिप्पणी से बाहर टिप्पणी की अप्रासंगिक अंश प्रतिनिधित्व करते हैं। बीच में print hex(input()), कोर progam है। यह एक अग्रणी के साथ आउटपुट करता है 0x, लेकिन मैं मान रहा हूं कि यह ठीक है (यदि नहीं, तो यह वैसे भी एक आसान फिक्स है)।

पहली पंक्ति "1\"# &&+.@\""दो " "एस के बाद एक स्ट्रिंग है । इन तीन तारों को पार्सर द्वारा समतल किया जाता है, और अप्रयुक्त छोड़ दिया जाता है (यह पहली पंक्ति रूबी और जूलरी के लिए इसी तरह काम करती है)।

GolfScript (कार्य 15 / वजन कम करना)

"1\"# &&+.@\""" "" "
#=
''''
<<s
""'("']0=~2base{+}*}

पहली पंक्ति तीन तारों को धक्का देती है, और दूसरी पंक्ति एक टिप्पणी है। ''''दो और तारों को धक्का देता है, फिर <<दो तुलना करता है ( sअनदेखा किया जाता है)। अंत में, ""'("'एक और दो तारों को धक्का देता है।

यह सब जंक है फिर इसे एक सरणी में लपेटकर और पहला तत्व ( ]0=) प्राप्त किया जाता है, जो कि स्टैक पर शुरू में इनपुट है। हम तब के साथ इनपुट का मूल्यांकन करते हैं ~, 2baseफिर बाइनरी में बदल जाते हैं {+}*। अगला }बेजोड़ है, और बाकी कार्यक्रम में सुपर-कमेंट्स हैं।

जूलिया (टास्क 16, फाइबोनैचि)

"1\"# &&+.@\""" "" "
#=
xxx
xxx=#print(([1 1;1 0]^int(readline()))[1,2])
#=
xxx
xxx=#.91<0#xxx

#=एक बहुस्तरीय टिप्पणी शुरू करता है और =#एक बहुस्तरीय टिप्पणी समाप्त करता है। कोर प्रोग्राम फाइबोनैचि संख्या ( रोसेटा से लिया गया ) की गणना करने के लिए मैट्रिक्स घातांक का उपयोग करता है ।

रूबी (टास्क 17 / ASCII फ्रेम)

"1\"# &&+.@\""" "" "
#=
''''
<<s
xxx
s
l=gets
a='+-'+?-*~/$/+'-+'
puts a+'
| %s |
'%l+a#xxx

यह कार्यक्रम मानता है कि इनपुट एक अनुगामी न्यूलाइन के साथ समाप्त नहीं होता है।

हमारे पास एक बेकार स्ट्रिंग है, एक टिप्पणी है, एक और बेकार स्ट्रिंग है और फिर एक हेरेडोक है जो अधिकांश कार्यक्रम की टिप्पणी करता है। उसके बाद कोर प्रोग्राम है, उसके बाद सिंगल लाइन #कमेंट।

CJam (टास्क 19 / डायमंड)

"1\"# &&+.@\""" "" "
#=
''''
<<s
""'("xxx
"
R"xxx"[?S"!"*"
xxx
xxx"ri:X{_~X+S*'/@S*_'\4$N}%_sW%1>"xxx
xxx
xxx";

पहली पंक्ति के अंत में दो अंतरिक्ष तार CJam को संतुष्ट करने के लिए हैं, क्योंकि #=दो बाइनरी ऑपरेटर हैं। मैं इस एक के साथ बहुत अधिक विस्तार में नहीं जाऊंगा, लेकिन मूल रूप से यह एक गड़बड़ है, जिसमें कोर प्रोग्राम मात्र है

ri:X{_~X+S*'/@S*_'\4$N}%_sW%1>

के बीच में।

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

'("'

धक्का एक (तो साथ एक स्ट्रिंग शुरू होता है "(पहले चार जिनमें से ',) जबकि इसके बाद के संस्करण GolfScript में सिर्फ एक सीधी एकल स्ट्रिंग है।

इसे ऑनलाइन आज़माएं । Prelude 1>के (लिए खाते के बजाय उपयोग किया जाता है ।


यहां 12 भाषाएं, 373 बाइट्स हैं । कुछ कार्य चारों ओर चले गए हैं, ट्रांसक्रिप्ट को हटा दिया गया है (यह रेल बहुत महंगा बना दिया गया है) और योजना (चिकन) को जोड़ा गया है। मुख्य पोस्ट को हमेशा के लिए अपडेट करने के बाद से अपडेट होने के लिए यह सिर्फ मेरा गोल्फ ग्राउंड है।

"1\"09!#.&&+.@"" "" "#|"
#=
''''
<<s
11]0=~2base{+}*}
 ?
 :_7/!\_7%!@
"
R"Happy Birthday, "[?S"!"*"
>0[0>i:0(?v:{)?v0n;\!/
$'main';n1< .95<
(-[Hello, World!]o#''';print(input()in input());'''"]];ri:X{_~X+S*'/@S*_'\4$N}%_sW%1>"=#print(([1 1;1 0]^int(readline()))[1,2])#=)?(!?)
s
l=gets
a='+-'+?-*~/$/+'-+'
puts a+'
| %s |
'%l+a# =##'''#";e# |#(print(format"~x"(eval(read))))

मैं जूलिया के लिए कुछ बाइट्स बचा सकता था क्योंकि असंबद्ध बहुस्तरीय टिप्पणियां STDERR में त्रुटि उत्पन्न करती हैं।


उत्तम सामग्री। TRANSCRIPT के लिए क्या कार्य है?
कैबी 407

@ Cabbie407 मैं अभी भी कोशिश कर रहा हूं कि किस भाषा को कौन सा काम मिलता है, लेकिन वर्तमान में TRANSCRIPT ने हैलो वर्ल्ड ले लिया है, और रेल टैब टास्क में बदल गई है।
Sp3000

आह, अब मैं यह देख सकता ;)हूं कि मैं अपने उत्तर में कुछ भी बदल रहा हूं, क्योंकि लंबे विवरण के कारण। lol
Cabbie407

26

7 8 9 10 भाषाएं, 398 431 447 507 बाइट्स

यह संभवतः सबसे अधिक है जो मैं वर्तमान समाधान में फिट हो सकता हूं।

#if      + 0+0/*^",v  +- '[.,][[" ,yadhtrib yppaH"l?!;offf4+ + +0.0 +aa<*/
a=0--0;b=input();print(sorted(set(b))==list(b));[[""""                 ^ <
print("Hello, World!")--[[vv? +<
#endif/*  >.!0 + +1ffr"!"~< */
#include<stdio.h>/*>:1 +?!^>i:1^*/
int main(){int a=1,b=1,c,i;scanf("%d",&i);if(1//**/1==2
){printf("%x",/*>&:7/.7%.@*/i);}else{for(;--i-1>0;a=b,b=c)c=a +b;printf("%d",b);}}/*]]--"""]];#@;_J + + \+*\-hhlz \+s[\|dzd\|)J "` + +,*.]]]*/SSSTNSSNSNSTNTTTTTSSSTNSNSTNTTTTTTSSTNTTSNSSNNSSSNTTTTNSTNNNN

अंतिम पंक्ति में व्हॉट्सएप कोड कूटबद्ध है ताकि एसई इसे न खाए। कोड को चलाने के लिए, सभी Sस्थानों Tको टैब के Nसाथ और नई लाइनों के साथ बदलें ।

C89, कार्य 16

यहाँ क्या संकलक देखता है:

int main(){int a=1,b=1,c,i;scanf("%d",&i);if(1/ 1==2
){printf("%x",i);}else{for(;--i-1>0;a=b,b=c)c=a+b;printf("%d",b);}}

टिप्पणी के रूप में या अंदर सब कुछ छीन लिया गया है #if 0

सी ++, कार्य 14

मैंने C89 और C ++ के बीच अंतर करने के लिए यहाँ से चुराई गई ट्रिक का उपयोग किया ।

int main(){int a=1,b=1,c,i;scanf("%d",&i);if(1
){printf("%x",i);}else{for(;--i-1>0;a=b,b=c)c=a+b;printf("%d",b);}}

लुआ, कार्य २

यहां मूल संरचना है।

#comment
a=0--comment
print("Hello, World!")--[[
... multiline comment ...
]]--comment

दिमाग लगाना, कार्य १

मुझे बस यह सुनिश्चित करना था कि कोई अनंत छोर या आवारा नहीं .,मिले। लुआ की बहुस्तरीय टिप्पणियां भी बीएफ टिप्पणियों की तुलना में दोगुनी हैं। पहले 2 पात्रों के अलावा सब कुछ एक बड़ा एनओपी लूप है।

++,+-[.,][[,+++.+<--[[<,--[[+<>.++<<.>>+>,,,,,>..--->,+,]]--]]+++-+[++,.]]]

अजगर, कार्य ६

फिर से, मैं एनओपी के लिए भाषा-विशिष्ट सुविधाओं का उपयोग कर रहा हूं या अन्य कोड की टिप्पणी कर रहा हूं।

#comment
a=0--0;b=input();print(sorted(b)==list(b));[["""
... multiline string ...
"""]];#comment

पायथ, टास्क १ 17

इस चीज के लिए पाइथ अच्छा है। यह पहले #एक while True:लूप के रूप में लेता है जो त्रुटि पर चुपचाप बाहर निकलता है । इसलिए, मैं अभी अधिकांश कोड को एक स्ट्रिंग बनाता हूं (जैसे ;कि लूप को जल्दी खत्म करने से बचना है ), फिर बस लूप को समाप्त करें, पायथन टिप्पणी द्वारा बनाए गए दूसरे से बाहर निकलें और कार्य करें। यहां इसे सभी गैर-खाली तारों के साथ बदल दिया गया है " string ", यह अभी भी कार्यात्मक रूप से समकक्ष है:

#if      + 0+0/*^" string " ,yadhtrib yppaH" string """" string "Hello, World!" string "!"  string "%d"  string "%x" string "%d" string """]];#@;_J + + \+*\-hhlz \+s[\|dzd\|)J " string

> <>, कार्य 3

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

#                  v            " ,yadhtrib yppaH"l?!;offf4+ + +0.0 +aa<*/
                   i                                                   ^ <
                   !      vv? +<
          >.!0 + +1ffr"!"~<
                   >:1 +?!^>i:1^

तारक , कार्य ९

यहां मुझे भाषाओं को छोड़कर "सभी वर्णों को त्यागना" शुरू करना था। कुछ और छीन लिया, ऐसा लगता है:

      + +*,  + '., , + + +. +*                  ,  +*  . + + *.* +*  ,,,,**,*..*, +,* + + +* + ` + +,*.*

कोड एक कठिन समय से बचने के लिए एक छलांग के साथ अधिकांश विराम चिह्न को छोड़ देता है, बस कोड के प्रारंभ और अंत का उपयोग करता है। कोड कार्यात्मक रूप से के बराबर है

      + +*,  + + +,*.*

Befunge-98, कार्य 10

इसी तरह काम करता है> <> एक। सौभाग्य से, #> <> में एक दर्पण है और Befunge में एक स्किप है, इसलिए हम विभिन्न व्यवहार को लागू कर सकते हैं। इसके अलावा, 0/0 == 0

#if      + 0+0/*^
                >&:7/.7%.@

व्हॉट्सएप , टास्क 13

यह आखिरी चीज थी, जिसमें मैं फिट था। पहली कुछ पंक्तियाँ सिर्फ स्टैक पर शून्य को धक्का दे रही हैं, क्योंकि उनमें केवल "सामान्य" कोड से रिक्त स्थान और नए अंक शामिल हैं। कोड एन्कोडेड है; सभी जगह को टैब के साथ और न्यूलाइन्स के Sसाथ बदलें ।TN

SSSSSSSSSSSSSSSN
SSSSSSSSSSSSSSSSSSN
SSN
SSSSSN
SN
SSN
SSSSSSSSSSSTN
SSN
SN
STN
TTTTTSSSTN
SN
STN
TTTTTTSSTN
TTSN
SSN
N
SSSN
TTTTN
STN
N
N

9

पिप के 17 अलग-अलग संस्करण, 383 बाइट्स (अमान्य)

हालांकि यह प्रश्न सैंडबॉक्स किया गया था, मैंने अपनी भाषा पिप के सभी संशोधनों के माध्यम से कंघी की और उनमें से 17 का उपयोग करके बहुभुज के साथ आया। अफसोस की बात है कि अब एक ही भाषा के संस्करणों को चुनौती नियमों द्वारा अस्वीकृत कर दिया गया है, लेकिन डेनिस की अनुमति और अस्वीकरण के साथ मैं वैसे भी अपना काम पोस्ट कर रहा हूं।

कच्चा कोड

I!ga:0m@0:0v:uIN[(oTM0,0i)EN1N1Y1RCkw(hR`1.+0``&2o`)@>3@AB0`u`rZ4AB6({a}V7)BN8AZ9@m]Iv<2W##YqlPByc:((J['.'@]X4)X4RL3)Jnc.:n.RVcc:cRL4|0Iv=3{d:sXaRLaFj,ad@j@j:'\d:(RVdR'\'/).d|0dJ:n}m:'+.'-X#a+2.'+.n."| "Iv=5La{i+:oSio}j:ak:bPv=11?a>1&0INa%(2,a)[((J_M ZRVl)|0)Jnl?lJnlcJnd.n.RVdm.a.RVmih:$+TBa({j@aEQk}FI0,#a).saTB16a>b?abh=1ua//7.s.a%7a+bbINa"Happy Birthday, ".a.'!"Hello, World!"]@v

रणनीति

पिप में, लोअरकेस अक्षर चर हैं। अपरकेस अक्षर अधिक जटिल होते हैं: वे अधिकांश दो वर्णों के रन में टूट जाते हैं, जो ऑपरेटर या चर हो सकते हैं। यदि अपरकेस टोकन को विशेष रूप से एक चर या ऑपरेटर के रूप में परिभाषित नहीं किया जाता है, तो इसे एक अपरिभाषित चर माना जाता है, जो शून्य का मूल्यांकन करता है।

इसलिए, पिप के दो संस्करणों के बीच अंतर करने के लिए, मुझे बस कुछ वैरिएबल या अल्फाबेटिक ऑपरेटर को ढूंढना होगा जो कि दो के नए में जोड़े गए थे। पुराने में, इसके बजाय शून्य होगा। कोड v:uIN[...]एक बड़ी सूची को एक साथ रखता है जिसमें से प्रत्येक संस्करण की मैं जांच करना चाहता हूं, यह पता लगाता है कि उस सूची में कितने nils हैं ( uचर स्पष्ट रूप से nil को आरंभीकृत किया गया है), और संख्या को v"संस्करण" के लिए संग्रहीत करता है ) ।

कुछ अन्य गणनाओं के बाद, एक और बड़ी सूची है जो चुनौती से कार्यों के 17 के लिए परिणामों की गणना करती है और vयह किस संस्करण के आधार पर एक का चयन करने के लिए उपयोग करता है।

संस्करण और कार्य

0.15.09.04

डायग्नोस्टिक: (oTM0,0i)( Tआरआई Mऑपरेटर के साथ एक बग तय किया जाता है जहां एक स्ट्रिंग के प्रत्येक छोर से 0 वर्णों को ट्रिम करना, खाली स्ट्रिंग प्रदान करेगा। खाली स्ट्रिंग में अनुक्रमणिका शून्य देता है)

टास्क 18: Iv<2W##YqlPBy(सेटअप: स्टड से सभी पंक्तियों को पढ़ें यदि v2 से कम है) इसके बाद ((J_M ZRVl)|0)Jn(लाइनों की रिवर्स सूची, स्थानांतरण, और वापस स्ट्रिंग में शामिल हों)

0.15.08.06

निदान: EN1(जोड़ा ENगया ऑपरेटर)

टास्क 1: Iv<2W##YqlPBy(ऊपर सेटअप कोड) l?lJnl( इसके बाद newlines पर शामिल हों)

0.15.08.03

निदान: 1N1( ऑपरेटर के Nलघु संस्करण के रूप में जोड़ा गया IN)

कार्य 20: c:((J['.'@]X4)X4RL3)Jnc.:n.RVcc:cRL4|0(सेटअप: शतरंज और दुकान के ऊपरी और निचले हिस्सों से युक्त सूची उत्पन्न करें c) इसके बाद cJn(न्यूलाइन पर शामिल हों)

0.15.08.01

डायग्नोस्टिक: Y1(अतिरिक्त Yऑपरेटर जोड़ा गया )

टास्क 19: Iv=3{d:sXaRLaFj,ad@j@j:'\d:(RVdR'\'/).d|0dJ:n}(सेटअप: यदि v3 है, तो हीरे के शीर्ष आधे का निर्माण करें d) इसके बाद d.n.RVd(नीचे के आधे के लिए उल्टा करें और नई रेखा पर जुड़ें)

0.15.06.19

डायग्नोस्टिक: RCk(जोड़ा गया Rएंडोम Cहोवर ऑपरेटर)

टास्क 17: m:'+.'-X#a+2.'+.n."| "(सेटअप: बिल्ड +----+\n| स्ट्रिंग इन m) इसके बाद m.a.RVm(रैप इनपुट इन mऔर रिवर्स m)

0.15.06.12

डायग्नोस्टिक: k( पहले kसे अपरिष्कृत चर ", "; पहले यह अपरिभाषित था और इस प्रकार शून्य)

टास्क 16: Iv=5La{i+:oSio}(यदि vयह 5 है, तो फाइबोनैचि संख्या उत्पन्न करें i) इसके बादi

0.15.06.08 (नोट: निम्नलिखित वचन तक संस्करण संख्या नहीं बदली गई थी)

डायग्नोस्टिक: w(पूर्व-निर्धारित wचर `\s+`)

कार्य 15: h:$+TBa(द्विआधारी और योग अंकों के लिए इनपुट परिवर्तित करें, hबाद में कार्य के लिए परिणाम सहेजें 12)

0.15.05.29

निदान: (hR`1.+0``&2o`)@>3@AB0

इस संस्करण &को रेगेक्स रिप्लेसमेंट (सेड से प्रेरित) में पूरे मिलान वाले स्ट्रिंग के प्रतिस्थापन पैटर्न के रूप में जोड़ा गया । उपरोक्त कोड लेता है h( 100) और इसे नए संस्करणों में `&2o`( "1002o"लेकिन "&2o"पुराने संस्करणों में) बदल देता है। यह तीसरे ( "2o"नए संस्करणों में, ""पुराने संस्करणों में) के बाद सभी पात्रों को स्लाइस करता है और उस स्ट्रिंग में अनुक्रमित करने का प्रयास करता है। एक खाली स्ट्रिंग में अनुक्रमण शून्य देता है।

टास्क 7: j:ak:b(सेटअप: स्थानीय संस्करणों को कॉपी करता है a, bवैश्विक संस्करण के लिए j, kइसलिए वे एक फ़ंक्शन के अंदर उपलब्ध होंगे) इसके बाद ({j@aEQk}FI0,#a).s(सूचक के लिए फ़िल्टर aजहां संबंधित वर्ण बराबर होता है b, और अंतरिक्ष में शामिल होता है)

0.15.05.26

डायग्नोस्टिक: `u`(जोड़ा गया पैटर्न प्रकार; पिछले संस्करणों में, बैकटिक्स को बिना पहचाने गए वर्णों के रूप में अनदेखा किया जाता है, और अभिव्यक्ति इसका मूल्यांकन करती है u, जो शून्य है)

कार्य 14: aTB16( To Base 16 में परिवर्तित करें )

0.15.05.24

डायग्नोस्टिक: rZ4( rविशेष वैरिएबल बनाया गया है जो संदर्भित होने पर हर बार 0 और 1 के बीच एक यादृच्छिक मान लौटाता है; पहले यह अपरिभाषित था और इस प्रकार nil के लिए मूल्यांकन किया गया अभिव्यक्ति)

कार्य 13: a>b?ab(टर्नरी अभिव्यक्ति)

0.15.05.12

निदान: rZ4(जोड़ा गया Zआईपी ​​ऑपरेटर)

टास्क 12: h=1(टास्क 15 से बिट्स का योग 1 के बराबर होना चाहिए)

0.15.05.11

डायग्नोस्टिक: AB6(जोड़ा गया ABविल्कुल वैल्यू ऑपरेटर)

टास्क 11: Pv=11?a>1&0INa%(2,a)[...]@v(यदि v11 है, 1तो आउटपुट 1 से अधिक है और एक छोटी संख्या इसे ठीक से विभाजित करती है, 0अन्यथा, यदि vकुछ और है, तो vआउटपुट के लिए यह तय करने के लिए सूची में एक सूचकांक के रूप में उपयोग करें )

0.15.05.02

डायग्नोस्टिक: ({a}V7)(जोड़ा गया Vऑपरेटर; जब Vअपरिभाषित था, तो इसने तर्क और 7 को एक फ़ंक्शन भेजा {a}जो अपना पहला तर्क लौटाता है)

टास्क 10: a//7.s.a%7(इनपुट 7 से विभाजित और मॉड 7, स्पेस-अलग)

0.15.04.26

निदान: BN8(जोड़ा Bitwise Negation ऑपरेटर)

टास्क 9: a+b

0.15.04.23

डायग्नोस्टिक: AZ(अपरिपक्व AZचर को अपरकेस वर्णमाला में)

कार्य 5: bINa( INघटनाओं की गिनती देता है)

0.15.04.20

निदान: m@0:0इसके बाद9@m

mचर इस प्रतिबद्ध, में 1000 तक preinitialized है @ऑपरेटर lvalues वापस जाने के लिए तय किया गया था; पहले, m@0एक चेतावनी देने के लिए असाइन किया गया और कुछ भी नहीं किया। इस प्रकार, पोस्ट-बगफिक्स, पहले स्टेटमेंट के लिए सेट mहोता है 0000, जो इसके लिए एक कानूनी सूचकांक है 9; प्री-बगिफ़िक्स, mरहता है 1000, जो एक कानूनी सूचकांक नहीं है। (संकेत अभी तक चक्रीय नहीं थे।)

कार्य 3: "Happy Birthday, ".a.'!

0.15.04.18

सभी पिछले डायग्नोस्टिक्स का परिणाम नैदानिक ​​सूची में जोड़ा जा रहा है।

कार्य 2: "Hello, World!"


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


4

6 भाषाएँ, 226 बाइट्स (229 इस बात पर निर्भर करती है कि कैसे \x1bस्वीकार किया जाता है!)

/&&#[+.#]@>>+[>,]<[<]>>[.>]>\[/;//;#<?die("\x1bc".max($argv[1],$argv[2]));/*
$a=['Hello','World'];//;printf"%s, %s!
",$a[0]||'Happy Birthday',$a[1]||pop;#";$a="\
#";alert(prompt().match("\t")?"I hate tabs!":"I love spaces!");/\]/

इसलिए, मुझे नहीं लगता कि मैंने भाषाओं का सबसे अच्छा विकल्प बनाया है और मुझे लगता है कि यह विशेष रूप से प्रतिस्पर्धात्मक नहीं है, लेकिन फिर भी मुझे एक दिलचस्प चुनौती मिली! कुल मिलाकर, बहुत सारी चुनौतियाँ पूरी नहीं हुईं, लेकिन मैं शायद व्हॉट्सएप या कुछ इसी तरह की चुनौती का सामना कर सकता था, लेकिन यह वही है जो मैंने अभी तक किया है:


1. दिमाग लगाना

[+.]>>+[>,]<[<]>>[.>]>[<.[],[][,],,[],[].]

Http://copy.sh/brainfuck/ और http://brainfuck.tk/ पर परीक्षण किया गया ।

सभी नजरअंदाज किए गए वर्णों को अलग करने के बाद, उपरोक्त कार्यक्रम हम सभी के साथ छोड़ दिया जाता है, जो कि प्रतीकों के अन्य भाषाओं के उपयोग को बायपास करने के लिए कुछ अतिरिक्त खाली छोरों के साथ सिर्फ उदाहरण बिल्ली कार्यक्रम है।

2. रूबी

/&&#[+.#]@>>+[>,]<[<]>>[.>]>\[/;//;
$a=['Hello','World'];//;printf"%s, %s!
",$a[0]||'Happy Birthday',$a[1]||pop;

उपयोग:

ruby cluster

सभी टिप्पणियों को हटाने के बाद उपरोक्त कोड है। पहली पंक्ति रूबी में पूरी तरह से बेकार के रूप में हम Befunge -93 और brainfuck कोड को रोकने के लिए, तो हम को रोकने के लिए एक सरणी बनाने के कुछ नियमित अभिव्यक्ति को परिभाषित है Helloऔर Worldऔर का उपयोग कर इसे प्रिंट printf(जोड़ने के लिए ,और !)।

3. पर्ल

/&&#[+.#]@>>+[>,]<[<]>>[.>]>\[/;//;
$a=['Hello','World'];//;printf"%s, %s!
",$a[0]||'Happy Birthday',$a[1]||pop;

उपयोग:

perl cluster <name>

रूबी के समान, सिवाय इसके कि जब से हम किसी सरणी संदर्भ को संग्रहीत कर रहे हैं $a, जब हम $a[0]इसे खाली करने के लिए उपयोग करने का प्रयास करते हैं , तो हम इसे चुनौती 3 के लिए पाठ के साथ बदल सकते हैं, Happy Birthdayऔर pop(जो कमांड लाइन प्रोग्राम के अंतिम तर्क को दर्शाता है )।

4. जावास्क्रिप्ट

/&&#[+.#]@>>+[>,]<[<]>>[.>]>\[/;
$a=['Hello','World'];
",$a[0]||'Happy Birthday',$a[1]||pop;#";$a="\
#";alert(prompt().match("\t")?"I hate tabs!":"I love spaces!");/\]/

उपयोग: ब्राउज़र कंसोल में पेस्ट करें और चलाएं।

रूबी और पर्ल के रूप में भी, पहली पंक्ति अनिवार्य रूप से बेकार RegExpवस्तुओं का निर्माण करती है, हम फिर एक बेकार सरणी को स्टोर करते हैं $aऔर दो बेकार तारों को त्वरित करते हैं, एक जिसमें रूबी / पर्ल कोड होता है और एक में एक नई रेखा और एक होता है #, फिर हम prompt()इनपुट और alert()परिणाम की उम्मीद करते हैं चुनौती के लिए अधिकांश मनुष्यों द्वारा 4. हम RegExpब्रेनफॉक लूप को बंद करने के लिए एक और बेकार वस्तु के साथ समाप्त होते हैं ।

9. बेफुंज -93

/&&#[+.#]@

Http://www.quirkster.com/iano/js/befunge.html पर परीक्षण किया गया ।

जैसा कि मैं इसे समझता हूं, /स्टैक को विभाजित करता है और परिणाम को धक्का देता NaNहै जिसका उपरोक्त साइट पर धकेलने के अलावा कोई बुरा प्रभाव नहीं है , &एक पूर्णांक के इनपुट के लिए पूछता है , इसलिए हम स्टैक पर चुनौती 9 द्वारा आवश्यक दोनों संख्याओं को पढ़ते हैं, यह #सुनिश्चित करते हैं कि हम छोड़ दें [जो ब्रेनफक के लिए है, +फिर स्टैक पर शीर्ष दो नंबर जोड़ता है, .उन्हें आउटपुट करता है, #]फिर से ब्रेनफक के लिए और @बाहर निकलता है।

13. PHP (बाश में चल रहा है)

/&&#[+.#]@>>+[>,]<[<]>>[.>]>\[/;//;#<?die("\x1bc".max($argv[1],$argv[2]));

उपयोग:

php cluster <x> <y>

PHP में, <?टैग के भीतर शामिल नहीं की गई कुछ भी आउटपुट वर्बेटिम है, इसलिए यह Befunge-93 और brainfuck कोड को आउटपुट करता है इसलिए हम die()तुरंत कोड में आउटपुट करते हैं, एक स्क्रीन क्लियर ( \x1bc) फिर max()पहले दो तर्कों का आउटपुट देते हैं ।


आप शाब्दिक ESCape चरित्र को स्ट्रिंग शाब्दिक में रख सकते हैं, बस एक नोट जोड़ें कि यह वहां है ( the first character in the first string literal is the byte ASCII 27); आपका स्कोर 226 है।
बिल्ली

@cat हाँ, मुझे लगता है कि आप सही हैं, मैंने अभी के लिए छोड़ दिया है, लेकिन मैंने शीर्षक में 226 डाला है। मैं भूल गया हूं कि मैंने इस चुनौती का कितना आनंद लिया, मैं शायद अब थोड़ा और कर सकता हूं और ईएस 6 का उपयोग करके मैं .match'\x09'(जहां `` हैं) हो सकता है शायद मैं देखूंगा कि क्या मैं किसी बिंदु पर अधिक जोड़ सकता हूं!
डोम हेस्टिंग्स

4

6 भाषाएँ, 450 404 बाइट्स

बैश, ब्रेनफक, सी, गौक 4, जावास्क्रिप्ट और मिनिमल -2 डी

/*\t/#[R,+/D
/\t/ # UL.-L<script>var s=prompt().split(' ');alert(+s.pop()+ +s.pop())</script>
sed "s/^\(.*\)$/Happy Birthday, &!/;q"&&0
/\t/#*/
#define func
func main(){puts("Hello, World!");}
//{split($0,b,_);for(i in b)a[NR][i]=b[i++]}END{for(;j++<i;print"")for(k=NR;k;)printf a[k--][j]}
#//]++++++++[>+>+>++++++>++++++++<<<<-]>>++>--<<[>>>>>+++[<++++[<<....>....>-]<<<.>>>>-]<<<[>>+<<-]<[[>+<-]<]>>-]

अद्यतन: इसे थोड़ा नीचे गढ़ा। अभी भी निश्चित नहीं है कि और क्या जोड़ा जाए, और मुझे यकीन नहीं है कि विभिन्न कार्यों के लिए प्रतियोगी सदस्य अपनी भाषाओं का उपयोग करके मेरे बारे में कैसे सोचेंगे। Brainfuck एल्गोरिथ्म को समझाने की कोशिश कर रहा है।

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

यहाँ भाषाएँ हैं और वे वर्णमाला क्रम में क्या करती हैं। मैं उन सभी का और नीचे परीक्षण करने का एक आसान तरीका दिखाऊंगा। क्योंकि इसमें से कुछ संस्करण विशिष्ट हो सकते हैं, मैं आपके द्वारा उपयोग किए जाने वाले उपकरणों के संस्करण संख्या दे दूँगा।

मारना, टास्क ३

खैर, यह स्पष्ट है कि मैंने sed का उपयोग किया है। मैंने किसी तरह से इसमें एक स्क्रिप्ट लिखने की कोशिश की, लेकिन मैं इसे काम नहीं कर पाया, इसलिए मैं बैश मार्ग पर चला गया। जिस तरह से मैं इसे डिसाइड करता हूं, यह एक सी टिप्पणी के अंदर है और जाग इसे इसका मूल्यांकन करता है False

sed --version देता है sed (GNU sed) 4.2.2

bash --version देता है GNU bash, Version 4.3.30(1)-release (x86_64-pc-linux-gnu)

तो पालकी वाला हिस्सा नीचे आ जाता है

sed "s/^\(.*\)$/Happy Birthday, &!/;q"

यह इनपुट को समूहीकृत करता है, इसे एक नए स्ट्रिंग में पेस्ट करता है और परिणाम को प्रिंट करता है। बहुत आम सामान।

ब्रेनफक, टास्क 20

वैसे मुझे लगता है छिपाने के लिए यह हमेशा बहुत आसान है। #//सी के साथ शुरू होने वाली रेखा को सी और अवेक द्वारा अनदेखा किया जाता है। या कम से कम वे इसके पीछे बकवास के साथ रह सकते हैं।

bf देता है bf - a Brainfuck interpreter version 20041219

यह कंडेंस्ड कोड है। दूसरी भाषाओं से पहली पंक्ति केवल कचरा है।

[,+.-<>.+.++.<>.,,,,[][][++]++<[--][]]
++++++++[>+>+>++++++>++++++++<<<<-]>>++>--<<
[>>>>>+++[<++++[<<....>....>-]<<<.>>>>-]<<<[>>+<<-]<[[>+<-]<]>>-]

मैं यह समझाने की कोशिश करूंगा कि यह कैसे काम करता है

++++++++[>+>+>++++++>++++++++<<<<-]>>++>--<<

यह इस के लिए टेप और सूचक की व्यवस्था करता है

0 8 10 46 64 C2 C1
  ^

सेल 8 को पकड़े हुए निम्नलिखित लूप के लिए वैश्विक काउंटर है
यह 3 बार एक ही पंक्ति में मुद्रित होने की संख्या है

[>>>>>+++

सेट C1करने के लिए 3, एक ही लाइनों की संख्या

    [<++++

सेट C2से 4, के "नंबर ....@@@@एक पंक्ति में" (शुरुआत में)

        [<<....>....>-]<<<.>>>
    >-]

जब यह शून्य हो जाता है तो एक पूरी लाइन डिक्रिप्टिंग C2प्रक्रिया में प्रिंट
हो C2जाती है और यह एक नई लाइन प्रिंट कर देता है C1

यदि C1शून्य जादू होता है

    <<<[>>+<<-]
    <[[>+<-]<]

46 को
10 के पीछे ले जाया जाता है और वैश्विक काउंटर को दाईं ओर ले जाया जाता है

>>-]


अगर यह कार्यक्रम से बाहर निकलता है तो वैश्विक काउंटर को घटा दिया जाता है

सी, कार्य २

मैं "हैलो, वर्ल्ड!" प्रिंट करके सी की हर अंतिम छोटी क्षमता को यहां समाप्त करता हूं। खैर, किसी को काम करना था ...

gcc --version देता है gcc (Ubuntu 4.9.2-10ubuntu13) 4.9.2

वास्तविक C कोड

#define func
func main(){puts("Hello, World!");}
#

इस के #define funcसाथ अजीब बनाने के लिए है। यह सोचता है कि यह एक अजीब कार्य है। कवक के लिए संक्षिप्तिकरण एक gawk विशेषता है।

gawk4, कार्य 18

जब से मैंने यहाँ पर सब कुछ के लिए awk का उपयोग किया है, मैंने फैसला किया, कि इसे इसी में होना था।

awk --version देता है GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2-p11, GNU MP 6.0.0)

awk यह देखता है

/*\t/
/\t/
sed "s/^\(.*\)$/Happy Birthday, &!/;q"&&0
/\t/
func main(){puts("Hello, World!");}
//{split($0,b,_);for(i in b)a[NR][i]=b[i++]}END{for(;j++<i;print"")for(k=NR;k;)printf a[k--][j]}
#

खोज पैटर्न जिसमें \tमूल्यांकन शामिल है false। मैंने यहां टैब चुना, क्योंकि मुझे लगता है कि यह इनपुट में नहीं हो सकता। sedका मूल्यांकन करता है false"the string"&&0असत्य का मूल्यांकन करता है। फ़ंक्शन ठीक है। कार्यक्रम को निष्पादित किया जाता है यदि खाली पैटर्न का मिलान किया जाता है, जो कि यह किसी भी इनपुट के लिए है।

यह ऐसा करता है

इनपुट

elaic
परली
ucfit
srigs

उत्पादन

supe
rcal
ifra
जिली
stic

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

जावास्क्रिप्ट, कार्य ९

मुझे यकीन नहीं है कि यह वैध है, क्योंकि यह बहुत आसान था। यदि आप प्रोग्राम फ़ाइल को HTML समाप्त करते हैं, और इसे एक ब्राउज़र में खोलें (मैंने फ़ायरफ़ॉक्स 40.0.3 और क्रोम 45.0.2454.85 का उपयोग किया) यह आपको एक इनपुट के लिए संकेत देता है। आपको अंतरिक्ष द्वारा अलग किए गए दो नंबरों को दर्ज करना होगा, और यह उन लोगों के योग को अलर्ट करेगा।

<script>var s=prompt().split(' ');alert(+s.pop()+ +s.pop())</script>

न्यूनतम -2 डी , कार्य 1

यह टिप्पणी लाइनों में फिट करने के लिए बहुत आसान था। मैंने इसका परीक्षण करने के लिए अजगर में चलने वाले दुभाषिया का इस्तेमाल किया । यह इनपुट को आउटपुट में प्रिंट करता है। कार्यक्रम इस तरह दिखता है

R,+/D
UL.-L

RUDL दाएं, ऊपर, नीचे और बाएं हैं। तो यह सही होने लगता है, स्टड से एक वर्ण को मेमोरी में पढ़ता है और एक जोड़ता है। यदि स्मृति का मान 0 है, तो स्लैश अगले आदेश को छोड़ देता है। इसे समाप्त करना है। यदि मान -1 वाला वर्ण पढ़ा जाता है, तो इनपुट समाप्त हो गया है। तो अगर -1 पढ़ा जाता है तो यह डी को छोड़ देता है और समाप्त हो जाता है। अगर कुछ और पढ़ा जाता है, तो यह बाईं ओर नीचे चला जाता है, उस 1 को मेमोरी में वापस जोड़ता है और चरित्र को स्टैडआउट में प्रिंट करता है। फिर यह बाएं और ऊपर जाता है और ऊपर शुरू होता है।

परिक्षण

डिस्क्लेमर: इस सिस्टम से आपके द्वारा किए जाने वाले किसी भी नुकसान के लिए मैं कोई जिम्मेदारी नहीं लूंगा।

यह मान रहा है कि आपके पास bash & co, gawk (कम से कम 4 संस्करण है, क्योंकि यह बहुआयामी सरणियों का उपयोग करता है), gcc, python, bf को एक ब्रेनफैक दुभाषिया और फ़ायरफ़ॉक्स स्थापित के रूप में।

इसे आसान बनाने के लिए, प्रोग्राम स्रोत को नाम की फ़ाइल में कॉपी करें cluster.html। उस फ़ाइल को बैश कार्य के लिए निष्पादन योग्य बनाएं। उसी निर्देशिका में एक फ़ाइल में मिनिमल -2 डी के लिए दुभाषिया को कॉपी और पेस्ट करें minimal2D.py। फिर एक स्क्रिप्ट फ़ाइल में निम्न स्क्रिप्ट को कॉपी और पेस्ट करें और इसे उसी निर्देशिका में डालें, इसे निष्पादन योग्य बनाएं और इसे चलाएं ... ठीक है, मैं किससे बात कर रहा हूं। यदि आप इसे पढ़ते हैं, तो आपको शायद उस स्पष्टीकरण की आवश्यकता नहीं है और किसी भी तरह इसे चलाने के लिए प्राप्त करने वाले हैं।

#!/bin/bash
# Task  3: bash
echo "Dr. Hfuhruhurr" | ./cluster.html 2>/dev/null;echo
# Task 18: awk 
printf "elaic\nparli\nucfit\nsrigs\n" | awk -f cluster.html 2>/dev/null;echo
# Task  2: C
cp ./cluster.html ./cluster.c;gcc -w -o cluster cluster.c;./cluster;rm cluster cluster.c;echo
# Task  1: Minimal-2D
python minimal2D.py cluster.html <<<"This
has
to be
copied     !!!";echo
# Task 20: brainfuck
bf cluster.html;echo
# Task  9: JavaScript
firefox cluster.html 2>/dev/null
#google-chrome cluster.html 2>/dev/null

वहाँ भी आप व्यक्तिगत रूप से परीक्षण चलाने के लिए आदेश पाते हैं।

मज़े करो!


ब्रेनफक एक समस्या है; कोड में असंतुलित कोष्ठक हैं और सही तरीके से नहीं चलेंगे (आपको पूरी फाइल को चलाना होगा, न कि केवल संबंधित भाग को)। इसके अलावा, चेकरबोर्ड के वर्ग वास्तव में पाठ में अधिक वर्ग देखने के लिए 4x4 के बजाय 4x3 हैं ।
पुरकाकूदरी

संकेत के लिए धन्यवाद। वैसे यहाँ ठीक चलता है। मैं हमेशा पूरी फाइल चलाता हूं जैसा कि आप मेरी स्क्रिप्ट में देख सकते हैं। निश्चित नहीं है कि अगर दुभाषिया को चलाने से पहले कोष्ठक की जाँच करनी चाहिए। मेरा मन नहीं है। लेकिन मैंने उस लाइन को नजरअंदाज कर दिया। उसको बदलना है।
कैबी 407

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