चित्रा और जमीन


32

आंकड़ा और जमीन
स्रोत: विकिपीडिया

इस चुनौती के लिए, आपको दो कार्यक्रमों को लिखना चाहिए जो उपरोक्त छवि के आकृति और जमीन से मिलते जुलते हैं , जैसे कि उनमें से एक प्रिंट figureऔर दूसरा प्रिंट ground। विशेष रूप से:

  1. एक प्रोग्राम लिखें जो कोई इनपुट नहीं लेता है और स्ट्रिंग को प्रिंट करता है figure। आपके प्रोग्राम में केवल अनुमत व्हाट्सएप पात्र रिक्त स्थान (कोड पॉइंट 0x20) और नईलाइन (गाड़ी रिटर्न, 0x0D, लाइनफीड, 0x0A, या दोनों का एक संयोजन) हैं।
  2. नई कथानकों की अनदेखी करते हुए, अंतरिक्ष वर्णों (कोड बिंदु 0x20) और गैर-अंतरिक्ष वर्णों की संख्या समान होनी चाहिए। उदाहरण के लिए, यह एक वैध कार्यक्रम होगा (काल्पनिक भाषा में):

    ab c 
       d
    e f
    

    ध्यान दें कि पहली पंक्ति में एक अनुगामी स्थान है।

  3. आपके द्वारा बदले जाने हैं n के साथ वें अंतरिक्ष चरित्र एन वें में गैर-सफ़ेद चरित्र, कार्यक्रम प्रिंट चाहिए groundबजाय। उपरोक्त उदाहरण के लिए कार्यक्रम इस तरह दिखेगा:

      a b
    cde 
     f 
    

    ध्यान दें कि दूसरी और तीसरी पंक्तियों पर अनुगामी स्थान हैं।

आंकड़ा और जमीनी समाधान दोनों एक ही भाषा में पूर्ण कार्यक्रम होने चाहिए जो एसटीडीयूएसटी पर प्रिंट होते हैं। आप किसी भी मामले में एक ही वैकल्पिक अनुगामी न्यूलाइन प्रिंट कर सकते हैं। जब तक आप STDOUT सही है, तब तक आप कुछ भी आउटपुट कर सकते हैं जो STDERR को चाहिए।

आप किसी भी प्रोग्रामिंग भाषा का उपयोग कर सकते हैं , लेकिन ध्यान दें कि इन खामियों को डिफ़ॉल्ट रूप से मना किया गया है।

यह , इसलिए सबसे छोटा वैध उत्तर - बाइट्स में मापा जाता है - जीतता है।

हेल्पर स्क्रिप्ट

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

लीडरबोर्ड

जवाबों:


20

जेली , 20 बाइट्स

आकृति

“¦ĠȮ“©ụd» Ṃ         

नौ अनुगामी रिक्त स्थान। इसे ऑनलाइन आज़माएं!

भूमि

         “ ¦ĠȮ“©ụd»Ṃ

कोई अनुगामी स्थान नहीं। इसे ऑनलाइन आज़माएं!

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

सबसे पहले, ध्यान दें कि रिक्त स्थान परमाणु नहीं हैं, इसलिए स्ट्रिंग शाब्दिक के बाहर के अंतरिक्ष वर्ण किसी भी तरह से कार्यक्रम को प्रभावित नहीं करते हैं।

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

में आंकड़ा कार्यक्रम, “¦ĠȮ“©ụd»स्ट्रिंग जोड़ी पैदावार ( "आंकड़ा", "जमीन") , और परमाणु चयन lexicographical न्यूनतम, यानी, "आंकड़ा"

जमीनी कार्यक्रम में, “ ¦ĠȮ“©ụd»स्ट्रिंग जोड़ी ("लॉजिकली एब्सस", "ग्राउंड") के बजाय उपज देता है । लेक्सिकोग्राफिक न्यूनतम अब "ग्राउंड" है , जो कर्तव्यनिष्ठ रूप से चयन करता है।

दोनों मामलों में, दुभाषिया स्वचालित रूप से अंतिम रिटर्न मूल्य - यानी, चयनित न्यूनतम - STDOUT पर प्रिंट करता है।


14

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

·दोनों उत्तरों में स्थान बदलें :

····················
print'······figureground'[6:12]#

प्रिंट करता है figure

print'figureground'[
······6:12]#····················

प्रिंट करता है ground


14

05AB1E , 15 14 बाइट्स

आकृति

 'ŠÂ,'í¶      

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

भूमि

'       ŠÂ,'í¶

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

CP-1252 एन्कोडिंग का उपयोग करता है । ट्रेलिंग रिक्त स्थान पर ध्यान दें। में चित्रा कार्यक्रम, यह त्रुटियों के बिना एक सामान्य कार्यक्रम है। यह निम्नलिखित शब्दों को विघटित करता है:

'ŠÂ  ->  figure
'í¶  ->  ground

अल्पविराम पोप प्रिंट करता है और figureशब्द को एक नई रेखा के साथ प्रिंट करता है। चूंकि कुछ मुद्रित किया गया है, स्टैक के शीर्ष को अब मुद्रित नहीं किया गया है।

में ग्राउंड कार्यक्रम, कुछ त्रुटियां जो इस मामले में सुविधाजनक है कर रहे हैं। निम्नलिखित भाग:

'<space>

स्टैक के शीर्ष पर एक अंतरिक्ष वर्ण को धकेलता है। Šढेर है, जो एक arity है घूमता है 3 । स्टैक पर सिर्फ एक तत्व है और कोई इनपुट नहीं है, इसलिए यह स्टैक को साफ करने के लिए एक अपवाद देता है। Âढेर के शीर्ष bifurcates, लेकिन इस घुमाने ऑपरेटर के रूप में एक ही कहानी है। तो मूल रूप से ,कमांड कुछ भी प्रिंट नहीं करता है।

इसका मतलब है कि कार्यक्रम अभी भी स्टैक के शीर्ष पर आउटपुट करेगा 'í¶। परिणाम स्वरूप ground


9

रेटिना , 31 बाइट्स

चित्र:

|       
आकृति
 | जमीन
      

ग्राउंड:

 | आंकड़ा

|       
भूमि

चित्रा और जमीन । दोनों कार्यक्रमों के लिए आवश्यक है कि STDIN को वैध आकृति या जमीनी कार्यक्रमों के लिए खाली छोड़ दिया जाए।


9

पायथ, 30 बाइट्स

आकृति

"figure" "ground              

14 अनुगामी स्थान।

परीक्षा

भूमि

कोई अनुगामी स्थान नहीं

        "       figure""ground

परीक्षा

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

मदद के बजाय, एक स्थान पाइथ में मुद्रण को दबा देता है, जबकि बिना किसी समापन के स्ट्रिंग शाब्दिक "रूप से बंद कर दिया जाता है।

इसलिए पहले कार्यक्रम में दो तार होते हैं, "figure"और "ground "। पहली स्ट्रिंग को स्पष्ट रूप से मुद्रित किया जाता है, और दूसरे का मुद्रण दबा हुआ होता है, जिसका अर्थ है कि बस figureमुद्रित होता है।

दूसरे कार्यक्रम में दो तार होते हैं, " figure"और "ground"। पहले का मुद्रण दबा हुआ है, और दूसरा अंतर्निहित रूप से मुद्रित है, जिसका अर्थ है कि बस groundमुद्रित हुआ है।


6

MATL , 37 बाइट्स

पहला कार्यक्रम

'figure'         
%x'ground'         

प्रत्येक पंक्ति में 9 अनुगामी स्थान हैं।

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

दूसरा कार्यक्रम

    'figure'%
      x'ground'

यहां ट्रालिंग स्पेस नहीं हैं।

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

व्याख्या

कुछ भी नहीं फैंसी ...

  • बयानों के बीच रिक्त स्थान और newlines MATL द्वारा नजरअंदाज कर दिए जाते हैं।
  • % टिप्पणी प्रतीक है, जो बाकी पंक्ति को नजरअंदाज करता है।
  • x स्टैक के शीर्ष को हटाता है।
  • कार्यक्रम के अंत में स्टैक को स्पष्ट रूप से मुद्रित किया जाता है।

6

जावा, 180 बाइट्स

.अंतरिक्ष के साथ बदलें ।

प्रिंट "आंकड़ा":

class
A{public
static
void
main(String[]a){System.out.println(
//"ground"
//
.....
........
......
....
...................................
..
........
..........
....
"figure");}}

प्रिंट "जमीन":

.....
........
......
....
...................................
..........
..
class
A{public
static
void
main(String[]a){System.out.println(
//
"ground"
//"figure"
);}}
............

5

Befunge, 54 बाइट्स

चित्रा ( यह ऑनलाइन प्रयास करें! )

# वी "एर्गिफ" वी>
      : #, _ @>         
"Dnuorg"

दूसरी लाइन पर दस अनुगामी रिक्त स्थान।

ग्राउंड ( इसे ऑनलाइन आज़माएं! )

  # वी "एर्गिफ" वी 
>: #, _ @> "डेंगू"
        

पहली पंक्ति पर एक अनुगामी स्थान और तीसरी पंक्ति पर आठ स्थान।


4

गणितज्ञ, 50 34 बाइट्स

एक REPL वातावरण का उपयोग करता है। ( Print[]समान संख्या में रिक्त स्थान के साथ एक आवरण जोड़ने से बाइट की संख्या 14. बढ़ जाएगी।) दो कार्यक्रम हैं

01figure+0 1ground                

(16 अनुगामी स्थानों के साथ) और

          0       1figure+01ground

यहां कुंजी यह है कि गणितज्ञ एक ही संख्या के रूप में बिना स्थान के अंक के समाकलन का इलाज करता है, लेकिन हस्तक्षेप करने वाले स्थानों को पड़ोसी गुणन के रूप में व्याख्या किया जाता है, जैसा कि संख्या और मनमाना चर नामों का संघटन है। तो पहली अभिव्यक्ति का मूल्यांकन है 1*figure+0*1*ground, जो है figure; दूसरी अभिव्यक्ति का मूल्यांकन है 0*1*figure+1*ground, जो है ground


4

PHP, 44 42 बाइट्स

आंकड़ा: (16 अनुगामी स्थान, आकृति के बीच 5 रिक्त स्थान;)

echo''?ground:figure     ;                 

जमीन: (20 प्रमुख स्थान)

                     echo' '?ground:figure;

बहुत सरल वास्तव में, काम करता है क्योंकि ''झूठी है और सत्य ' 'है। उपयोग की तरह:

php -r "echo''?ground:figure     ;                "
php -r "                    echo' '?ground:figure;"

संपादित करें: 2 रेट्रोस्पेक्टिवली स्पष्ट बाइट्स ने मार्टिन एंडर को धन्यवाद दिया


3

हास्केल, 96 94 88 82 77 बाइट्स

पहला कार्यक्रम, प्रिंट "figure":

main              =          putStr$idid"ground"
idid    _          ="figure"

दूसरा कार्यक्रम, प्रिंट "ground":

    main=putStr$id id"ground"                   
    idid _="figure"         

दो अलग-अलग नामित कार्यों में से एक को कॉल करता है


3

हास्केल, 88 65 बाइट्स

main=putStr
...........--
.."figure"..........
--"ground"........

तथा

...........
main=putStr..
--........"figure"--
.........."ground"

.एक स्थान इंगित करता है। बस कुछ लाइन टिप्पणी (-> --) करतब दिखाने।


3

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

........................
print"figure"
an
d
"ground"

.संकेत रिक्त स्थान है। अंतिम तीन पंक्तियों को बिना किसी त्रुटि के विभाजित किया गया है, SyntaxErrorजो कोड को पहली जगह पर चलने से रोक देगा।

जमीनी संस्करण सिर्फ andदूसरे तार को मुद्रित करने के लिए उपयोग करता है।


वैकल्पिक (लंबा) प्रयास:

.......
print(#"ground")#
"figure")...................


print"figure"""and"ground"
.............
.............

3

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

alert('figure'
                //&&'ground'
           )
              
alert('figure'//            
&&'ground') 

आकृति में कोई अनुगामी स्थान नहीं है।


मैं प्रत्येक कार्यक्रम के लिए 56 बाइट्स गिनता हूं, जब तक कि नईलाइन्स की गिनती नहीं होती है। मुझे संदेह है कि यह कोई छोटा हो जाएगा।
ETHproductions

@ETHproductions ऊ, जब आप मैन्युअल बाइट्स गिनते हैं तो यही होता है :-(
नील

2

रेल , 56 बाइट्स

आकृति

$'main'
 -[figure]o                
-          [ground]o

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

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

भूमि

       
$ 'मुख्य' - [आकृति] ओ
 - [जमीन] ओ         

पहली पंक्ति पर 7 स्थान और अंतिम रेखा पर 9 अनुगामी स्थान हैं। यह कार्यक्रम भी एक त्रुटि के साथ समाप्त होता है।

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

व्याख्या

\$.*'main'प्रवेश रेखा को खोजने के लिए रेल (रेगेक्स नोटेशन) के साथ शुरू होने वाली रेखा को देखती है। ट्रेन (निर्देश सूचक) तब $चलती दक्षिण-पूर्व से शुरू होती है । ट्रेन द्वारा उपलब्ध नहीं होने वाली चीजों को कार्यक्रम के लिए पूरी तरह से नजरअंदाज किया जा सकता है। इसमें प्रवेश बिंदु के समान रेखा पर कुछ भी शामिल है। चूंकि, ट्रेन के -दक्षिण-पूर्व में $तुरंत ट्रेन पूर्व की ओर मुड़ जाती है, दोनों कार्यक्रम बस इसे कम करते हैं:

 -[figure]o
 -[ground]o

[...]एक स्ट्रिंग शाब्दिक को दर्शाता है और oइसे प्रिंट करता है। आम तौर पर, आपको #रेल को समाप्त करने की आवश्यकता होती है , लेकिन यदि आप इसे छोड़ देते हैं, तो कार्यक्रम वैसे भी समाप्त हो जाता है (लेकिन एसटीडीआर पर शिकायत करता है कि ट्रेन दुर्घटनाग्रस्त हो गई)।


2

> <> , 39 बाइट्स

·रिक्त स्थान का प्रतिनिधित्व करने के लिए उपयोग करना ।

आकृति

v·
"·dnuo
e·
r·
u·
g··
i··
f···
"·
>·o·

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

भूमि

·v
·"····
·d
·n
·u
·oe
·ru
·gif
·"
·>·o

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

दोनों कार्यक्रम एक त्रुटि के साथ समाप्त होते हैं।

व्याख्या

कोड को लंबवत रूप से लिखने से, मैं gऔर rदोनों समाधानों के बीच, साथ ही उद्धरण और >और oआउटपुट लूप के लिए पुन: उपयोग करने में सक्षम था ।

दोनों मामलों में, निष्पादित होने वाला एकमात्र बिट नीचे का कॉलम है v, जो आवश्यक शब्द के अक्षरों को स्टैक पर रिवर्स ऑर्डर में धकेलता है। फिर >निर्देश सूचक को दाईं ओर पुनर्निर्देशित करता है, जहां यह लूप्स के माध्यम से लूप करता है o, वर्णों को तब तक प्रिंट करता है जब तक कि स्टैक खाली न हो जाए।


मैंने बस अपने> <> संस्करण पर काम करना शुरू कर दिया, फिर मैं आपके पास आया। मैं वास्तव में तुम्हारा काम करने के विचार को पसंद करता हूं (मेरा बहुत 'सामान्य' है)।
चैले पेलिकन

@ Tealpelican मैं इस के साथ नहीं आया जब तक कि विखंडन जवाब बाहर काम नहीं कर रहा। इससे पहले मेरा सबसे अच्छा> <> समाधान 42 बाइट्स था: !__|"druong">o<"figure"(जहां _रिक्त स्थान हैं, और शेष रिक्त स्थान बस पंक्ति के अंत में जाते हैं)।
मार्टिन एंडर

मेरा सबसे छोटा वर्तमान संस्करण यह है; ## "de nr uu og ri GF"> o! ~ ~! <## जो काफी मजेदार है वह 42 बाइट्स भी है! मेरे पिछले संस्करणों में त्रुटि की जाँच की गई थी लेकिन यह केवल 53 बाइट्स तक ही सीमित रह सका।
चैले पेलिकन

2

विखंडन , 37 बाइट्स

·रिक्त स्थान का प्रतिनिधित्व करने के लिए उपयोग करना ।

आकृति

D·
"···
f··
i··
g·
u·
r·
e·ound
"·
;·

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

भूमि

·D
·"fi
·gu
·re
·o
·u
·n
·d····
·"
·;

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

व्याख्या

मूल रूप से मेरे> <> उत्तर के समान काम करता है (हालांकि मुझे वास्तव में यह पहले मिला)। केवल अंतर यह है कि "वर्णों को तुरंत विखंडन में प्रिंट करता है, यही कारण है कि शब्द उल्टा नहीं लिखे जाते हैं और हमें केवल ;अंत में कार्यक्रम को समाप्त करने की आवश्यकता क्यों है ।


1

जालीदार, 46 बाइट्स

                      "ground""figure"" "?$$o;

इसे ऑनलाइन आज़माएं! यह प्रिंट करता है ground

"ground""figure"""?$$o                 ;      

इसे ऑनलाइन आज़माएं! यह प्रिंट करता है figure

भूमि

प्रासंगिक कोड:

"ground""figure"" "?$$o;
................          push these two strings
                " "?$     pop " " off (since " " is truthy, `?` executes `$`)
                     $    pop TOS ("figure")
                      o;  output and terminate

आकृति

प्रासंगिक कोड:

"ground""figure"""?$$o;
................         push these two strings
                ""?$     doesn't activate
                    $    pop ""
                     o;  output and terminate

1

ब्रायन एंड चक , 55 53 बाइट्स

आकृति

erugif?dnuorg             
}<.<.<.<.<.<.             

प्रत्येक लाइन पर 13 अनुगामी स्थान हैं।

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

भूमि

             erugif?dnuorg
             }<.<.<.<.<.<.

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

व्याख्या

आह, ब्रायन एंड चक का उपयोग करने के बाद से पिछली बार कुछ समय हो चुका है। एक संक्षिप्त अनुस्मारक के रूप में, ब्रायन और चक दो ब्रेनफक जैसे उदाहरण हैं, जो एक दूसरे के स्रोत कोड को अपने टेप के रूप में उपयोग करते हैं। केवल चक मुद्रण आदेश का उपयोग कर सकता है ., ?दो उदाहरणों के बीच सशर्त रूप से स्विच करता है, और ब्रेनफक में }तरह [>]है। अज्ञात आदेशों को केवल अनदेखा किया जाता है।

चूंकि कार्यक्रमों की शुरुआत में रिक्त स्थान की अनदेखी की जाती है, इसलिए दोनों कार्यक्रम लगभग समान हैं। एकमात्र अंतर इस तथ्य से आता है कि स्विचिंग कमांड के बाद ?, निर्देश सूचक अगले कमांड को निष्पादित करने से पहले चलता है । इसलिए, चक के टेप पर पहला कमांड हमेशा छोड़ दिया जाता है। तो केवल वास्तविक अंतर यह है कि जमीन कार्यक्रम निष्पादित करता है }जबकि आंकड़ा कार्यक्रम नहीं करता है। तो यहाँ कोड कैसे काम करता है:

?   Switch control to Chuck.
}   GROUND PROGRAM ONLY: Move the tape head on Brian to the end of the tape.
<.  Move the tape head left and print the character there.
... Do the same another five times to print the remainder of the string.

0

WinDbg, 74 बाइट्स

भूमि

                      ea2000000"      groundfigure";;;da       2000006  L6

आकृति

ea2000000"groundfigure          ";;;da                  2000006       L6  

चित्रा में 2 अनुगामी स्थान हैं। मुझे लगता है कि कम से कम 2 या 4 बाइट्स गोल्फ होने चाहिए ...

यह मेमोरी को एक स्ट्रिंग लिखकर और उसमें से 6 चार्ट दिखा कर काम करता है। स्ट्रिंग में चार्ट को फिर से व्यवस्थित किया जाता है ताकि कार्यक्रमों के बीच दिखाए गए चार्ट बदल जाएं:

* Ground:
ea 2000000 "      groundfigure";     * Write string "      groundfigure" starting at 2000000
;                                    * No-op
;                                    * No-op
da 2000006 L6                        * Print 6 ascii chars, from 2000006, ie- ground

* Figure:
ea 2000000 "groundfigure          "; * Write string "groundfigure          " to memory
;                                    * No-op
;                                    * No-op
da 2000006 L6                        * Print 6 ascii chars, ie- figure

आउटपुट:

0:000>                       ea2000000"      groundfigure";;;da       2000006  L6
02000006  "ground"
0:000> ea2000000"groundfigure          ";;;da                  2000006       L6  
02000006  "figure"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.