इंडेक्सेबल क्वीन


14

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

इनपुट

एक पूर्णांक 0 <= n <len (प्रोग्राम)।

उत्पादन

आपके प्रोग्राम का nth कैरेक्टर (बाइट नहीं)।

जीतना

अधिकांश कोडगॉल्फ प्रश्नों की तरह, आप चुनौती को हल करने के लिए सबसे कम संख्या में बाइट्स का उपयोग करके चुनौती जीतते हैं।

बोनस

-5% यदि आपका कार्यक्रम नकारात्मक सूचकांकों अजगर शैली का समर्थन करता है (जैसे -1 आपके कार्यक्रम का अंतिम चरित्र होगा)। यदि नीचे दिए गए बोनस के साथ उपयोग किया जाता है, तो आपकी सीमाओं को नकारात्मक सूचकांकों का समर्थन करना चाहिए।
-20% यदि आपका कार्यक्रम उपरोक्त आवश्यकताओं के अतिरिक्त इनपुट (किसी भी प्रारूप) के रूप में है।
-25% यदि आपका प्रोग्राम दोनों बोनस को पूरा करता है।

लीडरबोर्ड

यहां एक नियमित लीडरबोर्ड और भाषा के अनुसार विजेताओं का अवलोकन करने के लिए एक स्टैक स्निपेट है।

यह सुनिश्चित करने के लिए कि आपका उत्तर दिखाई दे रहा है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:

# Language Name, N bytes

Nआपके सबमिशन का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:

# Ruby, <s>104</s> <s>101</s> 96 bytes

यदि आप अपने हेडर में कई संख्याओं को शामिल करना चाहते हैं (जैसे कि आपका स्कोर दो फ़ाइलों का योग है या आप दुभाषिया ध्वज दंड को अलग से सूचीबद्ध करना चाहते हैं), तो सुनिश्चित करें कि हेडर में वास्तविक स्कोर अंतिम संख्या है:

# Perl, 43 + 2 (-p flag) = 45 bytes

आप भाषा के नाम को एक लिंक भी बना सकते हैं जो लीडरबोर्ड स्निपेट में दिखाई देगा:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes


क्या क्वीन बिलिन वर्जित हैं?
मेगो

@ मेगो हाँ, वे हैं।
TheNumberOne

क्या बोनस स्टैक (100% - 20% - 5% = 75%) या गुणा (100% * 80% * 95% = 76%)?
ETHproductions

क्या ऐसे प्रोग्राम जो वास्तव में उनके इनपुट काउंट को नहीं पढ़ते हैं?
नील

@ETHproductions ढेर।
TheNumberOne

जवाबों:


12

पायथ, 0.75

(सीजेएम पॉलीग्लॉट और शायद कई अन्य भाषाओं में भी होता है।)

0

एसटीडीआईएन पर इनपुट की उम्मीद है:

llama@llama:~$ echo 0..0 | pyth -c '0'
0

कोई भी एक अंक काम करता है। पायथ में सबसे दिलचस्प चुनौती नहीं है।


1
यह कई अन्य भाषाओं में भी बहुविकल्पीय होता है।
मामा फन रोल

PlatyPar में भी काम करता है
22

1
और Japt, और Jolf, और लगभग हर भाषा में निहित आउटपुट के साथ
ETHproductions

9
और PHP, जो स्पष्ट रूप से गोल्फ के लिए सबसे अच्छी भाषा है।
user253751

8

जावास्क्रिप्ट ईएस 6, 31 बाइट्स

$=_=>`$=${$};$()`[prompt()];$()

व्याख्या

मानक क्वीन फ्रेमवर्क:

$=_=>`$=${$};$()`;$()

[prompt()], जो कि ऐडऑन है, परिणामस्वरूप क्वाइन स्ट्रिंग के इनपुट इंडेक्स पर मान प्राप्त करता है।


6

S, 9 चार्ट / 19 बाइट्स

⟮ɕṡ+ᶈ0)⎖ï

Try it here (Firefox only).

आयु, 19 वां बाइट!

0 काम करता है (और बहुत बेहतर है), लेकिन यह मेरी पसंद के लिए बहुत तुच्छ है।

इसके अलावा, ℹ ï,⧺ïयह भी काम करेगा, लेकिन रानी के कार्यों की अनुमति नहीं है।

व्याख्या

मानक क्वीन फ्रेमवर्क है ⟮ɕṡ+ᶈ0

)⎖ï परिणामी क्विन स्ट्रिंग लेता है और इनपुट इंडेक्स पर वर्ण प्राप्त करता है।


बोनस समाधान, 11.4 चार्ट / 25.65 बाइट्स

⟮ᵖ…ɕṡ+ᶈ0;ôᵍï

Try it here (Firefox only).

यह एक 5% बोनस के लिए अर्हता प्राप्त करता है, लेकिन फिर भी मेरे मूल सबमिशन को हरा नहीं पाता है।

व्याख्या

यह एक स्टैक का उपयोग करता है। ᵖ…ɕṡ+ᶈ0;स्टैक में केवल क्वीन स्ट्रिंग के अलग-अलग कैरेक्टर को पुश करता है, और स्टैक ôᵍïमें इनपुट इंडेक्स (पॉजिटिव या नेगेटिव) पर कैरेक्टर को सीधे आउटपुट करता है।


आपने अभी तक इसके लिए एन्कोडिंग क्यों नहीं बनाया है?
Addison Crump

अपडेट बहुत तेजी से आ रहे हैं! नहीं रख सकते!
मामा फन रोल

5

सीजेम, 12.35 बाइट्स

{s"_~"+ri=}_~

कार्यक्रम 13 बाइट लंबा है और × 0.95 बोनस के लिए अर्हता प्राप्त करता है । इसे ऑनलाइन आज़माएं!

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

{         }      Define a code block.
           _~    Push a copy and execute the copy.
 s               Cast the original code block to string.
  "_~"+          Append "_~".
       ri        Read an integer from STDIN.
         =       Retrieve the character at that index.

4
बेशक, 0थोड़ा कम होता ...
डेनिस

4

रूबी, 53 * 0.75 = 39.75

$><<(<<2*2+?2)[eval gets]
$><<(<<2*2+?2)[eval gets]
2

एक HEREDOC स्ट्रिंग 2को अपनी स्वयं की लाइन पर सीमांकित बनाता है , इसे संक्षिप्त करता है ( *2) और फिर 2एक वर्ण शाब्दिक के माध्यम से अंतिम में जोड़ता है । रूबी के बिल्ट इन का उपयोग करते हुए इसमें स्लाइस होता है String#[], जो सकारात्मक पूर्णांक, नकारात्मक पूर्णांक, और पर्वतमाला (फार्म में इनपुट m..n) का समर्थन करता है। $><<आउटपुट है। ( putsयहां एक अतिरिक्त स्थान की आवश्यकता होगी)।


मुझे लगता gets.to_iहै कि वही काम करेगा eval gets, और स्पष्ट होगा। यह गैर-पूर्णांक इनपुट को संभाल नहीं सकता है, लेकिन यह आवश्यक नहीं है
फंड मोनिका का मुकदमा

यह सामान्य तौर पर मैं क्या करूँगा, लेकिन यह रंगे को संभालने के लिए बोनस मिलता है। (ट्यूरिंग पूर्ण होने के लिए गैर-मौजूद बोनस भी)।
हिस्टोक्रेट

आह, मुझे वह याद आया। मेरी गलती।
निधि मोनिका का मुकदमा

3

रूबी, 38.25 बाइट्स

a="a=%p;$><<(a%%a)[eval gets]";$><<(a%a)[eval gets]

नकारात्मक सूचकांकों और श्रेणियों का समर्थन करें। मैंने खुशी से हिस्टोक्रेट से ट्रिक $><<और evalट्रिक दोनों को उठाया , और क्वीन ट्रिक किसी और के साथ शुरू होनी थी, इसलिए मैं इसे सीडब्ल्यू बनाऊंगा।


1

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

a="a=%r;print(a%%a)[input()]";print(a%a)[input()]

नकारात्मक सूचकांकों का समर्थन करता है।


हां, यह नकारात्मक संकेतों का समर्थन करता है।
बिल्ली

1

हास्केल, 122 बाइट्स

main=getLine>>= \i->putChar$(!!(read i))$p++show p where p="main=getLine>>= \\i->putChar$(!!(read i))$p++show p where p="

Ungolfed:

main=getLine>>= \i->putChar$(!!(read i))$p++show p
 where p="main=getLine>>= \\i->putChar$(!!(read i))$p++show p\n where p="

1

बेफुज 93, 5 बाइट्स

यह बहुत (बहुत) देर से है, लेकिन मैं इसे वैसे भी पोस्ट करूँगा:

&0g,@

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