नमस्ते दुनिया! सं पुनरावृत्ति के साथ


27

इस प्रश्न के पूछे जाने से पहले मौजूद किसी भी प्रोग्रामिंग भाषा में, एक प्रोग्राम लिखें (एक फ़ंक्शन नहीं) जो Hello world!एक नई पंक्ति के बाद वर्णों को आउटपुट करता है । आपका कार्यक्रम:

  • किसी भी वर्ण का एक से अधिक बार उपयोग नहीं करना चाहिए (व्हॉट्सएप सहित)
  • केवल ASCII वर्णों का उपयोग करना चाहिए
  • किसी भी अंतर्निहित पुस्तकालयों का उपयोग नहीं करना चाहिए
  • इनपुट (उपयोगकर्ता, फ़ाइल, फ़ाइल नाम, सिस्टम चर, इंटरनेट, कुछ भी) नहीं मिलना चाहिए
  • कुछ और आउटपुट नहीं करना चाहिए

विजेता वह है जिसके पास 14 दिनों के बाद सबसे अधिक वोट हैं और छह नियमों का पालन करता है।

छठा नियम यह है कि आप H9 +, HQ9 +, HQ9 + B, HQ9 ++, HQ9 + 2D, हैलो, हैलो +, हैलो ++, हेक्सिश, CHIQRSX9 +, या Fugue का उपयोग नहीं कर सकते हैं। साथ ही, उन सभी उत्तरों को लागू करने की आवश्यकता है जो इस चुनौती से नए हैं, जिन्हें गैर-प्रतिस्पर्धी के रूप में चिह्नित किया जाना चाहिए।


डिस्क्लेमर: यह सवाल इस धारणा के साथ पोस्ट किया गया था कि हैलो वर्ल्ड! सीमित पुनरावृत्ति से आपके कंप्यूटर या आपके मस्तिष्क को उत्तरों के साथ आने की प्रक्रिया में कोई नुकसान नहीं हुआ।


यदि हम चरित्र कोड से बच रहे हैं, तो "\" वर्ण का उपयोग एक से अधिक बार किया जा सकता है?
वैलेस्ट

4
क्या बात है?
विक्टर स्टैफुसा

@ विक्टर "को केवल ASCII वर्णों का उपयोग करना चाहिए"
टिमटेक

3
यह एक महान पहेली थी, और मैंने इसे करने का आनंद लिया :-)।
कोनराड बोरोस्की

9
"केवल ASCII वर्णों का उपयोग करना चाहिए" - एक कठोर प्रतिबंध। यह उन सभी भाषाओं को हटा देता है जो ASCII का उपयोग करने के लिए नहीं होती हैं।
टिमवी

जवाबों:


33

पर्ल 6 (29 28 अक्षर)

यह कुछ हद तक कष्टप्रद था, लेकिन मैं आखिरकार इस कार्य के लिए एक कार्यक्रम बनाने में कामयाब रहा। इस कार्य में मेरी मदद करने के लिए, महान # perl6 समुदाय को धन्यवाद । मुझे दो घंटे लगे, आशा है कि आप आनंद लेंगे। आउटपुट पूरी तरह से विनिर्देशन तक है, जिसमें एक नई पंक्ति भी शामिल है।

say
Q[@A`DO world!]~|<HeLhg>

ब्याज के चार टोकन हैं।

  • say

    यह तर्क को नई लाइन के साथ अंत में आउटपुट करता है। कमांड के बाद की नई लाइन को स्पेस रिप्लेसमेंट के रूप में आवश्यक है।

  • Q[@A`DO world!]

    यह पहला तार है। Q[]कच्चे तार के लिए है (जैसे r""पायथन में)। यह इस मामले में किसी भी सीमांकक (या उनकी जोड़ी) को ले सकता है []। इस मामले में, मैं इसे उद्धरण के लिए उपयोग करता हूं, मुझे कच्चे स्ट्रिंग व्यवहार की आवश्यकता नहीं है।

  • ~|

    यह stringwise ( ~) बिटवाइज़ या ( |) ऑपरेटर है।

  • <HeLhg>

    <>सूची शाब्दिक है, जो अंतरिक्ष के तत्वों की अलग से सूची लेती है। इस मामले में, इसका एक तत्व है, और इसे स्केलर के रूप में उपयोग किया जाता है, यह एक स्ट्रिंग देता है।


3
गजब का! मुझे सीखने की जरूरत है। कुछ पर्ल 6 सिंटैक्स! मैं आपकी टिप्पणी से भी सहमत हूँ, निश्चित रूप से एक मजेदार समस्या थी!
डोम हेस्टिंग्स

4
ओह ... मेरे मन उड़ा रहा है: हे +1
दरवाज़े

12

पर्ल 5 के साथ -M5.010, 29 बाइट्स

say+He.v108
x2,q(O world!)^$"

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

जब से मैंने पहली बार यह प्रयास किया है, मुझे बहुत ज्ञान प्राप्त हुआ है। अभी भी अन्य उत्तरों की तरह कम नहीं है, लेकिन सबसे अच्छा मैं साथ आ सकता हूं!


चुनौती के मामले कम हैं w
अर्जन जोहान्सन

@ GotrjanJohansen धन्यवाद, मैं भूल गया!
डोम हेस्टिंग्स

11

पर्ल 5.10+: 24 वर्ण

say+He,YZX^q(567 world!)

ठीक है, मुझे लगता है कि यह उतना ही छोटा है जितना कि पर्ल में।

साथ चलाने के लिए perl -M5.010(या बस perl -E) पर्ल 5.10+ सक्षम करने के लिए sayसुविधा।


गंभीर रूप से प्रभावित! मैं उम्र बिताने की कोशिश कर रहा हूँ ll...
डोम हेस्टिंग्स

9

गोल्फस्क्रिप्ट 42 33

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

{1wZ$Qei^Ak 3h-)ulmsogr7}.`*]2%n+

ऑनलाइन डेमो: http://golfscript.apphb.com/?c=ezF3WiRRZWleQWsgM2gtKXVsbXNvZ3I3fS5gKl0yJWwr

[{1$^(r iFNGDJUHv98oIMgtplbh4m}.`\*]6>2%n+

एक कोड ब्लॉक को परिभाषित करता है। कोड ब्लॉक की एक प्रति बनाता है और इसे स्ट्रिंग में परिवर्तित करता है। स्ट्रिंग पर पुनरावृति करने के लिए कोड ब्लॉक का उपयोग करता है। प्रत्येक पुनरावृत्ति के लिए कोड पिछले चार मान का एक प्रतिलिपि बना देगा, इसे वर्तमान चार मूल्य के साथ xor करें, और घटाएं 1. परिणामी स्ट्रिंग में पहले 6 वर्ण हटा दिए गए हैं, और प्रत्येक दूसरा वर्ण हटा दिया गया है। अंत में एक पंक्ति फ़ीड जोड़ा जाता है।

"r iFNGDJUHv98oIMgtplbh4m" सिर्फ दो अघोषित चर हैं, वे कुछ भी नहीं करते हैं, लेकिन वांछित परिणाम का उत्पादन करने के लिए उन्हें सावधानी से बनाया जाता है।

ऑनलाइन डेमो: http://golfscript.apphb.com/?c=W3sxJF4ociBpRk5HREpVSHY5OG9JTWd0cGxiaDRtfS5gXCpnNj4yJW4r


6

विम 7.3, 18 कीस्ट्रोक्स

:h-cu
9j3wy$<C-^>P<End>r!o

इस हेल्पफाइलHello world से स्ट्रिंग को कॉपी करता है , जो दुर्भाग्य से विम के संस्करणों में नहीं निकाला गया है।


इसके अनुसार , कीस्ट्रोक्स जैसे <Esc>Ctrl-key काउंट को एक बाइट के रूप में
सम्‍मिलित करता है

6

Befunge-98 , 34 31 बाइट्स

f"v!dlrow
+c<>a,kb@#*98e':g05-3

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

डुप्लिकेट पात्रों से बचने के लिए कुछ अलग तरीकों का उपयोग करता है।

सबसे पहले, हम दो "एस का उपयोग करने से बचने के लिए रैपिंग स्ट्रिंग शाब्दिक का उपयोग करते हैं । यह "दुनिया!" ढेर के लिए।

दूसरी पंक्ति पर बाईं ओर जाते हुए, हम "हेलो" fबनाने के लिए 9 अतिरिक्त जोड़ते हैं o। हम gसेल 5,0 ( l) से चरित्र को एट करते हैं और फिर इसे डुप्लिकेट करते हैं। 'पत्र लाने के लिए प्रयोग किया जाता है e। 72 प्राप्त करने के लिए 8 को 8 से गुणा करें, ASCII का मान H। फिर हम इसका उपयोग करके सब कुछ प्रिंट करते हैं ck,, और नई लाइन ( ) को प्रिंट करने के >लिए पुन: उपयोग करने के लिए दिशा को फ्लिप करते हैं ।,a


बहुत अच्छा लेकिन यह चुनौती अल्पविराम के बिना है।
अर्जन जोहान्सन

ओह लोल, यह आसान बनाता है ... धन्यवाद @ orjanJohansen
जो किंग

आप में से दो है +और d
अर्जन जोहान्सन

@ ØrrrJohansen उफ़। अब तय किया जाना चाहिए
जो राजा

3

अमृत , 37 बाइट्स

IO.puts~c(He#{[?n-2,108]}\x6f world!)

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

मैं इस बात की गारंटी नहीं दे सकता कि 2014 में जब यह चुनौती पोस्ट की गई थी, तब तक यह काम कर चुका होगा, और अमृत अभी भी प्री-1.0 था (और इस तरह, चाहे वह औपचारिक रूप से "प्रतिस्पर्धा" हो, लेकिन उनके रिलीज नोट्स को देखते हुए, मुझे लगता है कि यह होना चाहिए ठीक है)। वैसे भी, मुझे खुशी है कि मैंने आखिरकार पर्ल के अलावा एक पारंपरिक सामान्य प्रयोजन भाषा का उपयोग करते हुए इस कार्य का एक वैध समाधान पाया!

पूर्वाभ्यास

IO.puts     #Print with trailing newline
~c(...)     #Sigil: charlist with interpolation
He          #Start of literal string...
#{...}      #Interpolated block
[?n-2,108]  #A list of codepoints for 2 'l's
\x6f        #Hex code for 'o'
world!      #...and done!

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