पॉइंट-फ़्री लुक और सीक्वेंस कहना


11

आप एक प्रोग्राम भी बनाते हैं जो इनपुट के रूप में पूर्णांक लेता है और पहले आउटपुट को बताता है कि वह संख्या लुक और सीक्वेंस का था

उदाहरण के लिए:

$ ./LAS
8
[1,11,21,1211,111221,312211,13112221,1113213211]

आपके द्वारा सूची को आउटपुट करने का सटीक तरीका महत्वहीन है, जब तक कि उपयोगकर्ता अनुक्रम के विभिन्न नंबरों को स्पष्ट रूप से देख सकते हैं। यहाँ हालांकि पकड़ है। आप किसी भी प्रकार के उपयोगकर्ता-परिभाषित चर का उपयोग नहीं कर सकते।

उदाहरण के लिए:

  1. कोई भी चर नहीं, जिसमें स्कूप किया गया चर भी शामिल है।
  2. जब आपके पास फ़ंक्शन होते हैं, तो उनका कोई नाम नहीं हो सकता है। (अपवाद, अगर आपकी भाषा को एक मुख्य कार्य या काम के समान होने की आवश्यकता है, तो आपके पास वह फ़ंक्शन हो सकता है।)
  3. जब आपके पास फ़ंक्शन होते हैं, तो वे तर्कों का नाम नहीं दे सकते हैं।

इसके अलावा, आप लुक और सीक्वेंस से संबंधित विशिष्ट क्षमताओं वाली लाइब्रेरी का उपयोग नहीं कर सकते हैं, और आप नेटवर्क तक पहुंच नहीं सकते हैं, या किसी भी फाइल के साथ अपना प्रोग्राम प्रदान नहीं कर सकते हैं (हालांकि यह अपने आप उत्पन्न और उपयोग कर सकता है।) यह कोड गोल्फ है। पात्रों में इतना कम कोड जीतता है!


1
क्या है "एक्सट्रीम पॉइंट फ्रीनेस"?
जस्टिन

1
@Quincunx मुझे इसे देखना था: stackoverflow.com/questions/944446/…
डिजिटल ट्रामा

क्या आप इस नियम की व्याख्या कर सकते हैं When you have functions, they can not have named arguments.:?
n --h'a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳


3
@ n @h languagesa̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ कई भाषाओं में (जैसे J भाषा या स्टैक / आधारित भाषाएँ जैसे आगे या पोस्टस्क्रिप्ट), कार्यों में तर्क नहीं है; वे कुछ बाहरी संदर्भ (एक बाहरी दायरे से आने वाले एक ढेर या तर्क) पर लागू होते हैं।
थॉमस बरूचेल

जवाबों:


6

GolfScript (31 वर्ण)

~[]\{[1\{.2$={;\)}1if\}*].n@}*;

मेरे जवाब से पहले के एक लुक-एंड क्वेश्चन को अपनाया । यह एक कार्यात्मक भाषाओं के लिए कम onr प्रतिबंध है, जो 5 वर्णों को बचाने की अनुमति देता है, लेकिन क्योंकि पिछले प्रश्न के अधिकांश उत्तरों को अनुकूलित नहीं किया जा सकता है (यह गैर-कार्यात्मक भाषाओं के लिए एक पागलपनपूर्ण प्रतिबंध है) मुझे नहीं लगता कि यह समझ में नहीं आता है एक डुबकी के रूप में इसे बंद करने के लिए।


11

हास्केल 206 चार्ज

import Data.List
import Control.Applicative
import Data.Function
main= readLn >>= print .(flip take (map read $ fix (("1":). map (concat .(map ((++)<$>(show . length)<*>((:[]). head))). group))::[Integer]))

यह समूह फ़ंक्शन का उपयोग करके उन्हें समान चीजों के समूहों में समूह बनाने के लिए काम करता है। फिर यह फ़ंक्शन के साथ एप्लिकेशंस का उपयोग एक फ़ंक्शन का निर्माण करने के लिए करता है जो एक साथ लंबाई पढ़ता है, और इसे एक तत्व के साथ जोड़ता है। यह एक पुनरावर्ती परिभाषा (बिंदु मुक्त) बनाने के लिए एक फिक्स और एक मानचित्र का उपयोग करता है और फिर वहां जाता है।


10

जे (42 वर्ण)

बिंदु-रहित (जिसे टैसीट भी कहा जाता है) प्रोग्रामिंग जे में स्वाभाविक है।

,@:((#,{.);.1~(1,}.~:}:))&.>^:(<`((<1)"_))

यह एक फ़ंक्शन है, इसका उपयोग करने के लिए आप कोड, एक स्थान और इनपुट नंबर लिखते हैं। उदाहरण के लिए,

   ,@:((#,{.);.1~(1,}.~:}:))&.>^:(<`((<1)"_)) 8
┌─┬───┬───┬───────┬───────────┬───────────┬───────────────┬───────────────────┐
│1│1 1│2 1│1 2 1 1│1 1 1 2 2 1│3 1 2 2 1 1│1 3 1 1 2 2 2 1│1 1 1 3 2 1 3 2 1 1│
└─┴───┴───┴───────┴───────────┴───────────┴───────────────┴───────────────────┘

आउटपुट में सुंदर बक्से को नोटिस करें।

परिशिष्ट : यहाँ "चीट" के एक जोड़े हैं मैं पहली बार में उपयोग करने के लिए बहुत ही चिड़चिड़ा था, लेकिन अब मैंने पहली बार अन्य उपयोग देखा है ...

  • यहां एक अलग "कॉलिंग कन्वेंशन" के साथ 36 चार्ट संस्करण है: 8 इच्छित शब्दों की संख्या के साथ 8 बदलें।

    ,@:((#,{.);.1~(1,}.~:}:))&.>^:(<8)<1
    
  • और यदि आउटपुट में अतिरिक्त शून्य हो तो ठीक है, यहाँ एक 32 char संस्करण है:

    ,@:((#,{.);.1~(1,}.~:}:))^:(<8)1
    

7

GolfScript, 36 वर्ण

~([1]\{.[0\{.2$=!{0\.}*;\)\}/](;}*]`

चर को बहुत ही कम उपयोग किया जाता है GolfScript में, और यह कार्य निश्चित रूप से उनकी आवश्यकता नहीं है। इनपुट स्टड पर है, आउटपुट स्टडआउट के लिए। उदाहरण के लिए, इनपुट 8आउटपुट देता है:

[[1] [1 1] [2 1] [1 2 1 1] [1 1 1 2 2 1] [3 1 2 2 1 1] [1 3 1 1 2 2 2 1] [1 1 1 3 2 1 3 2 1 1]]

मैं इस कोड का विस्तृत विवरण बाद में लिख सकता हूं, लेकिन कम से कम आप आसानी से बता सकते हैं कि यह इस तथ्य से कोई चर का उपयोग नहीं करता है कि इसमें चर असाइनमेंट ऑपरेटर :कहीं भी शामिल नहीं है ।


6

हास्केल, 118 वर्ण (80 बिना आयात)

import Data.List
import Control.Monad
main=readLn>>=print.flip take(iterate(ap((++).show.length)(take 1)<=<group)"1")

6

बैश और कोरुटिल्स, 111 73 वर्ण

eval echo 1\|`yes 'tee -a o|fold -1|uniq -c|(tr -dc 0-9;echo)|'|sed $1q`:

uniq -cअनुक्रम में अगले नंबर का उत्पादन करने के लिए भारी उठाने कर रहा है। yes, sedऔर evalप्रसंस्करण पाइपलाइन के दोहराव की आवश्यक संख्या बनाएं। बाकी सिर्फ स्वरूपण है।

आउटपुट को फाइल में रखा जाता है o:

$ ./looksay.sh 8
ubuntu @ ubuntu: ~ $ बिल्ली ओ
1
1 1
21
1211
111,221
312,211
13112221
1113213211
$ 

4

गणितज्ञ, 65 वर्ण

FromDigits/@NestList[Flatten@Reverse[Tally/@Split@#,3]&,{1},#-1]&

उदाहरण:

FromDigits/@NestList[Flatten@Reverse[Tally/@Split@#,3]&,{1},#-1]&[8]

{, 11, 21, 1211, 111221, 312211, 13112221, 1113213211}


3

जे, 37 वर्ण

1([:,((1,2&(~:/\))(#,{.);.1]))@[&0~i.

मटर पैटर्न प्रश्न के मेरे उत्तर के आधार पर । यहां छोटा करने की कुछ संभावनाएं हो सकती हैं। उपयोग अन्य J उत्तर के लिए है:

   1([:,((1,2&(~:/\))(#,{.);.1]))@[&0~i. 7
1 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0
2 1 0 0 0 0 0 0
1 2 1 1 0 0 0 0
1 1 1 2 2 1 0 0
3 1 2 2 1 1 0 0
1 3 1 1 2 2 2 1

यह भी अतिरिक्त शून्य समस्या है मेरे मटर पैटर्न जवाब था।


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

@PeterTaylor मटर पैटर्न एक में थोड़ा अलग है कि आपको अगली पंक्ति बनाने से पहले संख्याओं को क्रमबद्ध करना होगा।
गारेथ

2

पर्ल 6: 63 53 वर्ण

say (1,*.subst(/(\d)$0*/,{.chars~.[0]},:g)...*)[^get]

देखो और कहो अनुक्रम ( 1,*.subst(/(\d)$0*/,{.chars~.[0]},:g)...*) की एक आलसी सूची बनाएं , और फिर उपयोगकर्ता द्वारा निर्दिष्ट के रूप में कई तत्व प्राप्त करें ( [^get],, जो एक सरणी सबस्क्रिप्ट और साधन है [0..(get-1)]), और sayउन सभी को।

आलसी सूची पहले 1 लेने से काम करती है, फिर प्रत्येक क्रमिक संख्या को उत्पन्न करने के लिए, यह पिछले एक को लेती है जो इसे मिली और उसी अंक के सभी अनुक्रमों को प्रतिस्थापित करती है, जैसा कि मिलान किया गया है /(\d)$0*/, और उन्हें {कितने} + {क्या अंक} के साथ प्रतिस्थापित करता है। , या .chars~.[0]

इस कोड में केवल चर हैं $0, मैच का पहला कब्जा है, और अंतर्निहित, सामयिक $_चर जो नंगे .methodएस कॉल करते हैं, और इनमें से कोई भी उपयोगकर्ता-परिभाषित नहीं हैं।


1

गोल्फस्क्रिप्ट, 57 43 वर्ण

मेरा अपना दृष्टिकोण। मौजूदा उदासी = (।

~[1 9]{.);p[{...1<^0=?.@(\@(>.,(}do 0=]}@*;

का स्टैंप के लिए नमूना उत्पादन 8:

[1]
[1 1]
[2 1]
[1 2 1 1]
[1 1 1 2 2 1]
[3 1 2 2 1 1]
[1 3 1 1 2 2 2 1]
[1 1 1 3 2 1 3 2 1 1]

वैकल्पिक संस्करण w / 9प्रहरी बाहर , अभी तक यह 47 वर्णों पर है। मुझे संदेह है कि इसकी क्षमता अधिक है:

~[1]{.p[{...1<^.{0=?.@(\@(>1}{;,\0=0}if}do]}@*;

1

स्काला 178

(0 to Console.in.readLine.toInt).map(i=>Function.chain(List.fill[String=>String](i)(y=>(('0',0,"")/:(y+" ")){case((a,b,c),d)=>if(d==a)(a,b+1,c)else(d,1,c+b+a)}._3.drop(2)))("1"))

1
मुझे पूरा यकीन है कि iमें i=>एक चर है।
पीटर टेलर

1

डायलाग एपीएल, 35 अक्षर

(⊢,⊂∘∊∘((≢,⊃)¨⊃⊂⍨2≢/0,⊃)∘⌽)⍣(⎕-1)⊢1

मूल्यांकन किया गया इनपुट है। लिंक में मैंने इसे 8 के साथ बदल दिया है, क्योंकि tryapl.org उपयोगकर्ता इनपुट की अनुमति नहीं देता है।

कोई नामित चर ( a←1), कोई नामित कार्य ( f←{}), कोई तर्क ( , ) नहीं।

केवल कार्यों की संरचना:

  • राक्षसी संचालक- प्रत्येक:, कम करें f/:,f⍨
  • डाइएडिक संचालक- शक्ति:, f⍣nरचना:f∘g
  • कांटे - (f g h)B ←→ (f B)g(h B);A(f g h)B ←→ (A f B)g(A h B)
  • सबसे ऊपर - (f g)B ←→ f(g B);A(f g)B ←→ f(A g B)
  • 4-ट्रेनें (कांटा-ऊपर) -(f g h k) ←→ (f (g h k))

उपयोग किए गए आदिम कार्य:

  • सही:A⊢B ←→ B
  • उलटना:⌽B
  • प्रथम:⊃B
  • CONCATENATE:A,B
  • मिलान नहीं A≢B:≢B
  • एन्क्लोज़:, ⊂Bविभाजन:A⊂B
  • समतल:∊B

Tryapl.org में, यदि आप अनुगामी हटाते हैं ⊢1, जो इस बड़े पैमाने पर बनाई गई बात का तर्क है, तो आप इसका चित्रण देख सकते हैं कि यह कैसे पार्स किया गया है:

     ⍣               
   ┌─┴─┐             
 ┌─┼─┐ 7             
 ⊢ , ∘               
    ┌┴┐              
    ∘ ⌽              
 ┌──┴───┐            
 ∘    ┌─┴─┐          
┌┴┐   ¨ ┌─┼───┐      
⊂ ∊ ┌─┘ ⊃ ⍨ ┌─┼───┐  
  ┌─┼─┐ ┌─┘ 2 / ┌─┼─┐
  ≢ , ⊃ ⊂   ┌─┘ 0 , ⊃
            ≢

0

J 66 (I / O के साथ)

".@(_5}&',@((#,&:":{.);.1~1&(0})&(~:_1|.]))^:(<X)":1')@{.&.stdin''

IO के बिना, स्कोर 43:

NB. change the 8 for the number of numbers you'd want
,@((#,&:":{.);.1~1&(0})&(~:_1|.]))^:(<8)'1'

खुद को खड़ा करने के लिए मजेदार सवाल, पहले 9 को कब दिखाना है?


पूर्णांक अनुक्रम पृष्ठ को कभी न देखें।
पियरुलेज़

ठीक है मैं समझा। फिर ... ऐसा क्यों?
jpjacobs 21


एक स्ट्रिंग में इनपुट द्वारा एक्स की जगह के IO संस्करण में अच्छी चाल और फिर कॉलिंग eval!
उमर

अजीब सवाल के रूप में: यह बहुत स्पष्ट है कि आप केवल 1, 2 और 3 कभी नहीं है? मेरा मतलब है कि 4 या उच्चतर प्राप्त करने के लिए, पिछले चरण में आपको लगातार चार समान अंकों की आवश्यकता होगी, xaaaay, लेकिन ऐसा तब नहीं हो सकता है जब आप पहले एक और कदम कह रहे हों, जब आपने "x a, a" या "ए ए, ए ए"।
उमर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.