सबसे छोटा कार्यक्रम जिसका संक्षिप्त कार्यक्रम + आउटपुट 95 मुद्रण योग्य ASCII वर्णों का क्रमचय है


12

एक ऐसा प्रोग्राम लिखें जो जितना संभव हो उतना कम हो (जैसा कि बाइट-काउंट द्वारा मापा गया है), कोई इनपुट नहीं लेता है, जिसमें कोई टिप्पणी नहीं है, और एक चरित्र स्ट्रिंग / अनुक्रम आउटपुट करता है, जैसे कि कार्यक्रम को संक्षिप्त किया गया + आउटपुट लगभग 95 वर्ण लंबा है और इसमें प्रत्येक मुद्रण योग्य ASCII वर्ण शामिल हैं ठीक एक बार , अर्थात प्रोग्राम + आउटपुट ASCII कोड 32-126 के साथ 95 वर्णों का क्रमचय है:

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

एक टाई होने की स्थिति में, विजेता वह प्रविष्टि होती है जिसका (95-वर्ण) संक्षिप्त कार्यक्रम + आउटपुट उपरोक्त स्ट्रिंग के सबसे करीब होता है, जैसा कि लेवेंसहाइट एडिट-डिस्टेंस द्वारा मापा जाता है (अर्थात एकल-वर्ण विलोपन, सम्मिलन की संख्या, या) प्रतिस्थापन इसे ASCII के क्रम में रखना आवश्यक है)।


2
तो क्या इसका मतलब यह है कि अगर कार्यक्रम में कोई दोहराया वर्ण शामिल है तो यह स्वचालित रूप से अयोग्य है? वह खुरदरा है।
ब्रेडबॉक्स


1
आप यह भी नियम करना चाह सकते हैं कि क्या पुराना echo $0अयोग्य है।
पीटर टेलर

3
क्या प्रिंट करने योग्य अस्की चरित्र श्रेणी (और संभवतः इसके डुप्लिकेट) के बाहर वर्णों की अनुमति है? या प्रोग्राम + आउटपुट में हर मुद्रण योग्य वर्ण बिल्कुल एक बार होना चाहिए, और कुछ भी नहीं ?
प्राइमो

1
@primo मुझे लगता है कि वे अनुमति दी जाती है। मुझे लगता है कि यह "शिफ्ट-एंड-इवल" समाधान लिखने का समय है जो डुप्लिकेट का उपयोग करता है (हालांकि स्ट्रिंग शाब्दिक प्राप्त करने के लिए कठिन होने जा रहे हैं)
जॉन ड्वोरक

जवाबों:


12

GolfScript, 14 वर्ण

{`),32>46-^}.~

आउटपुट :

 !"#$%&'(*+/015789:;<=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]_abcdefghijklmnopqrstuvwxyz|

चुनौती (कम से कम जहां तक ​​मैं इसे समझता हूं) एक कार्यक्रम लिखना था जिसका कार्यक्रम और आउटपुट 95 प्रिंट करने योग्य एएससीआईआई चार्ट का क्रमांकन है, न कि सबसे कम संभव प्रोग्राम लिखने के लिए जो 95 प्रिंट करने योग्य एएससीआईआई चार्ट का उत्पादन करता है।
फ्रैंक श्मिट

माफ कीजिएगा यह मेरी गलती है। शीर्षक में यह "प्रोग्राम + आउटपुट" पढ़ता है, जबकि बाद में प्रश्न में यह संक्षिप्त प्रोग्राम + आउटपुट पढ़ता है ।
फ्रैंक श्मिट

),- वाह। मुझे वह अच्छा लगता है।
जॉन ड्वोरक

1
@JanDvorak codegolf.SE: एकमात्र स्थान जहां लोग एक करीबी और एक अल्पविराम के बारे में उत्साहित होते हैं। : पी
दरवाज़े

@ गोकोर्नोब गोल्फपार्टी में इसका अर्थ है "राइट अनकन्स (रपेन)" और उस आकार (कमेंट) की एक सरणी बनाएं "। वास्तव में आप एक पात्र (सही घुंघराले) और उस चरित्र के ASCII स्थिति (नीचे) के ठीक नीचे समाप्त होने वाली एक सरणी के साथ एक स्ट्रिंग को छोड़ देते हैं। अनपेक्षित वर्णों को ट्रिम करें, स्रोत कोड (घटाव लिया जाता है) के साथ अवधि और xor (सममित सेट अंतर) sans ने सही घुंघराले कहा, और आपका काम हो गया। और हाँ, स्ट्रिंग xor सरणी स्ट्रिंग है।
जॉन ड्वोरक

6

पर्ल, 89 वर्ण

यह सबसे अच्छा मैं अब तक करने में सक्षम है:

q< !"#%&'()+/8:?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\^_`abcdefghjklmosuvwxz|>;
print~-$=.73*2,y[]{}

पर्ल minutae में दक्ष नहीं उन लोगों के लिए, करने के लिए दो तर्क printबयान के रूप में प्रदान की जा सकता है ~(-($=)) . (73 * 2)और tr///

कार्यक्रम 6 वर्णों को आउटपुट करता है:

591460

दुर्भाग्य से हर एक यात्रा निर्माण मैं पर्ल में सोच सकते हैं कि ( for, while, until, map, grep) के साथ साझा करता कम से कम एक चरित्र print। यदि आउटपुट में नईलाइनों को प्रदर्शित करने की अनुमति दी गई थी, तो मैं 87 वर्ण के समाधान के लिए पर्ल 5.010 का उपयोग कर सकता हूं:

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

आइए देखें कि क्या मैं एक बड़ी संख्या को मुद्रित कर सकता हूं :-)
जॉन ड्वोरक

उह ... क्या आप मेरे लिए दूसरी पंक्ति का अनुवाद कर सकते हैं?
जॉन ड्वोरक

1
@JanDvorak $=वर्तमान आउटपुट डिवाइस में क्षैतिज रेखाओं की संख्या है। डिफ़ॉल्ट रूप से 60. ~-$=दो के 60 के पूरक ऋणात्मक का बिटवाइस उलटा है, जो कि होता है 5973*2146 है। .और ,उनसे जो करना चाहते हैं, वह करें। y[]{}कहने का एक और तरीका है tr///, जो ट्रांसपेरेंट ऑपरेटर है। यह लेता है $_और कुछ भी नहीं करता है, क्योंकि आपने इसे बदलने के लिए कोई वर्ण नहीं दिया है। यह बदले गए वर्णों की संख्या देता है, जो है 0। तो हमारे पास ~-$= . 73*2 , y[]{}= 59 . 146 , 0= '591460` है।
दान

6

PHP 67 बाइट्स

<?=U4eB1gkFdA6J9snZD2IE8y5PhwQV^xHGmqYMfNjKpbR3vcLalCWi0_TtrOSXouz;

आउटपुट:

-|"/@>& *+}:[!],'~(){.\`7#%$

ऐसा लगता है कि एक 65 बाइट समाधान होना चाहिए, केवल 28 के बजाय 30 चार्ट का उत्पादन करना चाहिए, लेकिन मैं इसे पंक्तिबद्ध करने के लिए नहीं मिल सका। 6 अप्रयुक्त वर्णों OSXouzको इसके बजाय स्ट्रिंग शाब्दिकों में से एक पर लगाया गया है।

संपादित करें: आगे के प्रतिबिंब पर, इस तरह से 28 से अधिक वर्ण उत्पन्न करना संभव नहीं है। UPPER ^ lowerहमेशा 32 और 63 के बीच एक चरित्र में परिणाम होगा, इसलिए सभी 10 अंकों के लिए आवश्यक हैं @[\]_`{|}~। शेष 22 में से चार का उपयोग स्क्रिप्ट में ही किया जाता है, केवल 18 को छोड़कर जो अकेले अक्षरों के साथ प्राप्त किया जा सकता है। हालांकि टाईब्रेकर में काफी सुधार किया जा सकता है।


आह, ज़रूर, नंगे पासवर्ड। मैं कैसे भूल सकता था?
जॉन ड्वोरक

3

रूबी, 91 वर्ण

%{ !"#$&\',-/450:<=>ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcefghijklmnqvwxyz|~};puts(?@‌​.ord*98+1)

आउटपुट 6273

%{...} जन द्वारक से चोरी चोरी


बिना टिप्पणी के। जैसा कि स्पष्ट रूप से कहा गया है।
जोहान्स कुह्न

@JohannesKuhn आह, ध्यान नहीं दिया। संपादित।
दरवाज़े

%{ !"#$&\',-/450:<=>ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcefghijklmnqvwxyz|~};puts(?@.ord*98+1)मुझे लगता है कि आप चाहते हैं कि (91 वर्णों के लिए) अर्धविराम के साथ एक मुद्रण योग्य विभाजक (एक नई पंक्ति के बजाय) के रूप में इस्तेमाल किया जाए, और घुंघराले कोष्ठक के अंदर से हटाए गए 'ऑर्ड' के अक्षरों के साथ।
Res

@res हाँ, यह इन सभी पत्रों का प्रबंधन करना मुश्किल है: पी
दरवाज़े

अब \ _ को तीन बार शामिल किया गया है।
हावर्ड

3

पर्ल, 61 अक्षर

print$:x8^CJIBQTOWAEULHVGFNMKRPZY,q<#"/;*g~?|={.>&+u15m97ws26

आउटपुट:

c@db[yo]le_ah\jfD`kX}zS-! %)('v304

$:के लिए चूक " \n-"x8इसे आठ बार दोहराता है; 24-वर्ण का परिणाम तब 23-वर्ण वाले बैरिस्टरिंग के साथ बिट-एक्सर्ड होता है (अंतिम -को छोड़ दिया जाता है)। दूसरा भाग एक 12-वर्ण q-string बिटवाइज़-और 10-वर्ण बैरिस्ट्रिंग (अंतिम 2 वर्णों को छोड़ दिया जाता है) है।


1
मुझे लगता है कि आपके कार्यक्रम की लंबाई 61 अक्षर है।
रेस

धन्यवाद। मेरे पाठ संपादक ने EOF के कारण 62 वर्णों की सूचना दी।
ग्रैमी

1

रूबी, 95 अक्षर, 6 संपादन

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

हां। बस। बस एक फ्री-फ्लोटिंग स्ट्रिंग शाब्दिक है जो कभी भी मुद्रित नहीं होता है। रूबी प्रतिशत-प्रकार-सीमांकक के रूप में स्ट्रिंग शाब्दिक (पर्ल से उधार, मुझे लगता है) का समर्थन करता है - सीमांकक कोई भी गैर-अल्फ़ान्यूमेरिक वर्ण है, और यदि उद्घाटन सीमांकक एक प्रारंभिक ब्रैकेट (कोई भी [({<) है, तो समापन सीमांकक संगत है समापन ब्रैकेट (नेस्टेड ब्रैकेट की अनुमति है)।

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


0

Tcl 96, दूरी 12 संपादित करें

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

रिक्त स्थान में से एक टैब होना चाहिए, मुझे डर है
जॉन ड्वोरक

टैब या स्पेस प्रिंट करने योग्य है?
जोहान्स कुह्न

टैब unprintable (ASCII 9) है, लेकिन अंतरिक्ष मुद्रण योग्य है (ASCII 32)।
जॉन ड्वोरक

1
[अभी देखा कि ओपी केवल आप के बाद यह स्पष्ट किया जवाब :)]
flornquake

1
join {!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghklmpqrstuvwxyz|~} 95 अक्षरों का उपयोग कर काम करने लगता है ? (आपकी प्रविष्टि के लिए धन्यवाद। गिरगिट के बारे में क्षमा करें - दुर्भाग्य से मैंने जल्दबाजी में संपादित किया है, और चीजों को अलग तरह से करना चाहिए था।)
res
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.