एक स्क्वायर प्रोग्राम लिखें जो कि "अनियंत्रित" होने की संख्या को आउटपुट करता है।


22

1 से अधिक के कुछ विषम पूर्णांक N के लिए, N के चौड़े, N वर्णों के चौकोर ब्लॉक पर विचार करें।

एक उदाहरण के रूप में N = 5 और पाठ को होने दें:

MLKJI
NWVUH
OXYTG
PQRSF
ABCDE

ध्यान दें कि यह वर्णमाला है (जेड के अलावा) निचले बाएं कोने से काउंटर-क्लॉकवाइज के आसपास सर्पिल। यह एक लुढ़का हुआ कालीन जैसा है।

सर्पिल वर्णमाला

पाठ को "अनियंत्रित करना" एक चौथाई मोड़ से घड़ी की दिशा FGHIमें ABCDEपरिणाम के रूप में एक ही स्तर पर होते हैं :

     PONM
     QXWL
     RYVK
     STUJ
ABCDEFGHI

यह अनियंत्रित 7 बार किया जा सकता है जब तक कि पाठ एक पंक्ति न हो:

         SRQP
         TYXO
         UVWN
ABCDEFGHIJKLM

             UTS
             VYR
             WXQ
ABCDEFGHIJKLMNOP

                WVU
                XYT
ABCDEFGHIJKLMNOPQRS

                   XW
                   YV
ABCDEFGHIJKLMNOPQRSTU

                     YX
ABCDEFGHIJKLMNOPQRSTUVW

                       Y
ABCDEFGHIJKLMNOPQRSTUVWX

ABCDEFGHIJKLMNOPQRSTUVWXY

चुनौती

चुनौती एक प्रोग्राम लिखने की है जो कि एक एन × एन टेक्स्ट का ब्लॉक है जो एक चौथाई मोड़ से कई बार "अनियंत्रित" होता है जब इसे अनियंत्रित पैटर्न में पुन: व्यवस्थित किया जाता है और चलाया जाता है।

यहाँ वास्तव में दो प्रतियोगिताएं हैं: (उम्मीद है कि यह बहुत गड़बड़ नहीं होगी)

  1. इसे सबसे छोटे N के साथ करें (N = 3 की एक सीमा तक)
  2. सबसे बड़े एन के साथ ऐसा करें (कोई सीमा नहीं)

कोई स्वीकृत उत्तर नहीं होगा लेकिन इन श्रेणियों में से प्रत्येक में विजेता को मुझसे कम से कम 50 इनाम प्राप्त होंगे। संबंधों के मामले में सबसे पुराने उत्तर जीतते हैं।

उदाहरण

अगर आपका कोड ब्लॉक है

MyP
rog
ram

इसे चालू करना चाहिए जैसा कि आउटपुट 0 होना चाहिए।

चल रहा है

   rM
   oy
ramgP

आउटपुट 1 होना चाहिए।

चल रहा है

     or
ramgPyM

आउटपुट 2 चाहिए।

चल रहा है

       o
ramgPyMr

आउटपुट 3 होना चाहिए।

अंत में, रनिंग ramgPyMro4 आउटपुट होना चाहिए।

विवरण

  • आउटपुट को स्टडआउट (या निकटतम विकल्प) द्वारा स्वयं मुद्रित किया जाना चाहिए। कोई इनपुट नहीं है।
  • आप अपने कोड में केवल मुद्रण योग्य ASCII (हेक्स कोड 20 से 7E, जिसमें स्थान शामिल हैं) का उपयोग कर सकते हैं।
  • रिक्त स्थान अनियंत्रित व्यवस्था में खाली जगह को भरते हैं। (जब तक आप बाईं ओर अनियंत्रित नहीं होते)
  • केवल पूरी तरह से चौकोर से लेकर पूरी तरह से समतल तक की व्यवस्था के लिए वैध उत्पादन की आवश्यकता है। अन्य कोई व्यवस्था नहीं चलाई जाएगी।
  • आप अपने स्वयं के स्रोत को नहीं पढ़ सकते हैं।
  • आप टिप्पणियों का उपयोग कर सकते हैं।
  • N = 1 को बाहर रखा गया है क्योंकि कई भाषाओं में कार्यक्रम 0काम करेगा।
  • यदि वांछित है तो आप दाईं ओर के बजाय बाईं ओर अनियंत्रित हो सकते हैं। इसलिए उदा

    MyP
    rog
    ram
    

    हो जाता है

    Pg
    yo
    Mrram
    

    और इसी तरह। इस तरह से रोल करने पर कोई अतिरिक्त स्थान नहीं जोड़ा जाता है। बस लाइनें खत्म हो जाती हैं

(संबंधित: एक आयताकार कार्यक्रम लिखें जो टाइम्स की संख्या को आउटपुट करता है यह घुमाया गया था )


इससे पहले कि मैं "चुनौती" पैराग्राफ पढ़ूं, मैं एक प्रोग्राम लिखने की चुनौती की उम्मीद कर रहा था जो खुद को अनियंत्रित करता है
जॉन ड्वोरक

1
N को विषम क्यों होना पड़ता है?
जॉन ड्वोरक

1
@JDDvorak मुझे लगता है कि एन को अजीब नहीं होना था, लेकिन यह सर्पिल को अधिक मानकीकृत करता है। यह उस तरह से रह रहा है, लेकिन यदि आप एक पाते हैं तो एक टिप्पणी के रूप में एक एन = 2 पोस्ट करने के लिए स्वतंत्र महसूस करें।
केल्विन के शौक

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

5
क्या आपके पास अनंत महान विचारों के साथ एक जादू की किताब है? आप इस तरह की दिलचस्प चुनौतियों के साथ कैसे आते रहते हैं?
जस्टिन

जवाबों:


27

गोल्फस्क्रिप्ट, एन <- [5,7 ..]

.   .
 . . 
 ..  
.  .#
],9\-

पूरी तरह से अनियंत्रित:

],9\-#  .   .  .  . . ...

स्पष्टीकरण:

  • . (कई बार) - इनपुट को डुप्लिकेट करें
  • ] - एक ही सरणी में ढेर इकट्ठा
  • , - इसकी लंबाई लें
  • 9\- - इसे 9 से घटाएं
  • # - लाइन टिप्पणी

व्हॉट्सएप एक NOP है, लेकिन किसी भी अन्य NOP ने भी काम किया होगा।

पूरी तरह से लुढ़का हुआ, यह स्टैक के रूप में इनपुट (उपेक्षित सामग्री) की नौ प्रतियों का उपयोग करता है; 9 - 9 = 0; इसे अनियंत्रित नहीं किया गया है।

प्रत्येक अनियंत्रित टिप्पणी के पीछे एक और डॉट (डुप्लिकेट) छुपाता है, एक बार स्टैक सिकुड़ता है, आउटपुट बढ़ाता है।

पूरी तरह से अनियंत्रित, यह स्टैक के रूप में केवल इनपुट (उपेक्षित सामग्री) का उपयोग करता है; 9 - 1 = 8; इसे 8 बार अनियंत्रित किया गया है।

समान दृष्टिकोण किसी भी N> 4 के लिए काम करता है: 92 * N + 1 के उचित मूल्य में परिवर्तन करें, फिर उसी सर्पिल पैटर्न का उपयोग करके डॉट्स (डुप्लिकेट) के पैटर्न का विस्तार करें जो सुनिश्चित करता है कि प्रत्येक अनियंत्रण के दौरान एक डॉट अनियंत्रित हो जाए।


खैर, जब तक कोई व्यक्ति एन = 3 नहीं पाता है, यह दोनों श्रेणियों में जीतने वाला उत्तर होगा।
केल्विन के शौक

3
@ केल्विन शौक मुझे कुल डिक होना चाहिए और साथ ही एक बाएं-अनियंत्रित समाधान को पोस्ट करना चाहिए? :-)
जॉन ड्वोरक

क्यों नहीं। एक अन्य उत्तर की संभावना नहीं लगती अन्यथा: P
केल्विन के शौकीनों का

1
एक के लिए क्यों न जाएं जो दोनों दिशाओं में अनियंत्रित हो सकता है? :)
बीटा डिके

@ बेताडे हेम ... :-)
जॉन ड्वोरक

13

गोल्फस्क्रिप्ट, एन = 4

यह एक सही रोल मूल कल्पना के रूप में है।

.. . 
...# 
.#.~
],8-

यहाँ अनियंत्रित हैं:

    ...
    #..
    ..
],8-~#.

       .#.
       ...
],8-~#. ..

          ..
          .#
],8-~#. ....

            ..
],8-~#. ....#.

              .
],8-~#. ....#..

],8-~#. ....#...

इसे यहाँ आज़माएँ


इस व्यवस्था के बारे में आपने क्या सोचा?
गर्वित हैकेलर

3
@proudhaskeller यदि आप नहीं जानते तो बेहतर है ...
ऑप्टिमाइज़र

8
क्या आपने कोई समाधान खोजा?
गर्वित हैकेलर

विशेष चुनौती: क्या आप .एस और #एस में से एक बना सकते हैं ?
जॉन ड्वोरक

मुझे ट्रेलिंग पसंद है ~। शायद मैं इसे N = 3 के लिए चुरा सकता हूं?
जॉन ड्वोरक

9

एपीएल, एन = 3

201
340
5|0

unrolled:

   32
   40
5|001

     43
5|00102

       4
5|001023

5|0010234

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

यह 5. से विभाजित उस संख्या के शेष की गणना करता है, केवल अंतिम पंक्ति का परिणाम मुद्रित होता है।

एपीएल, एन = 2

⍬∞
≡0

unrolled:

  ⍬
≡0∞

≡0∞⍬

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

किसी सरणी की गहराई (आयाम या लंबाई के साथ भ्रमित न होना) लौटाता है:

  • 0एक सरणी नहीं है। तो गहराई 0 है।
  • 0∞दो वस्तुओं 0और (अनंत) के साथ एक सरणी है । इसकी गहराई 1 है।
  • 0∞⍬एक और आइटम है , जो गहराई के साथ एक खाली सरणी है। इसलिए 0∞⍬गहराई 2 है।

ये दोनों कार्यक्रम ऑनलाइन दुभाषिया में भी काम करते हैं। मुझे यकीन नहीं है कि बाद में एक वाक्य-रचना सही है।

⍬0
≡∞


⍬¯
≡0

एपीएल, किसी भी एन> = 4 के लिए

एन = 4 के लिए:

∞  ∞
 ∞∞
∞ ∞
⍴1↓∞

पूरी तरह से अनियंत्रित:

⍴1↓∞  ∞  ∞ ∞ ∞∞∞

एन = 5 के लिए:

∞   ∞
 ∞ ∞
 ∞∞
∞  ∞
⍴1↓ ∞

पूरी तरह से अनियंत्रित:

⍴1↓ ∞   ∞   ∞  ∞  ∞ ∞ ∞∞∞

1↓सरणी में एक आइटम निकालता है। यदि तर्क स्केलर है, तो यह खाली सरणी भी लौटाता है। सरणी लंबाई मिलती है।


कोई स्पष्टीकरण?
गर्वित हैकेलर

@proudhaskeller संपादित किया गया।
jimmy23013

आप आदर्श रूप से किसी भी एन के लिए समान गहराई वाले तर्क का उपयोग कर सकते हैं। एपीएल के लिए धन्यवाद
ऑप्टिमाइज़र

@Optimizer यह इतना आसान नहीं है। अंतिम पंक्ति से पहले की चीजें अभी भी वाक्यविन्यास रूप से सही हैं। इसलिए मैं अधिकांश फ़ंक्शन या अन्य विराम चिह्नों का उपयोग नहीं कर सकता, जैसे ()[]कि वे किसी अवांछित स्थान पर दिखाई देंगे।
jimmy23013

मेरा मतलब था: `⍬ \ n⍬⍬0 \ n∞ Not` (वास्तव में ऐसा नहीं है, लेकिन आपको यह विचार मिलता है)
ऑप्टिमाइज़र
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.