प्रोग्राम मेरे ऑटोडिऐलर


16

दिन में वापस, टेलीफोन ऑटोडायलर्स ने डायल किए जाने वाले नंबर के प्रत्येक अंक के लिए एक कॉलम के साथ छिद्रित कार्ड का उपयोग किया। कॉलम में सात पंक्तियाँ थीं। पहले तीन पंक्तियों ने क्रमशः संख्याओं (1,2,3), (4,5,6) और (7,8,9) का प्रतिनिधित्व किया। पिछली तीन पंक्तियों ने इस व्यवस्था को 90 °: (1,4,7), (2,5,8) और (3,6,9) घुमाया। मध्य पंक्ति का उपयोग 0. के लिए किया गया था। किसी भी अंक 1-9 में दो छेद होंगे - पहली तीन पंक्तियों में एक, और नीचे की तीन पंक्तियों में एक। शून्य में केवल मध्य पंक्ति छिद्रित होती। आइए 6 नंबर के लिए छिद्रित कॉलम की कल्पना करें ( .अप्रकाशित है, xछिद्रित है, बाईं ओर गाइड केवल एन्कोडिंग को चित्रित करने के लिए है):

123 .
456 x
789 .
 0  .
147 .
258 .
369 x

हम उस पंक्ति की तलाश करते हैं जिसमें वह संख्या होती है जिसे हम डायल करने का प्रयास कर रहे हैं। 6 के लिए, यह दूसरी पंक्ति है, और नौवीं पंक्ति है। इन दो पंक्तियों को छिद्रित किया जाता है, शेष पांच पंक्तियों को अप्रकाशित किया जाता है। यहाँ सभी अंकों के लिए छिद्रित पैटर्न 0-9 हैं:

    0 1 2 3 4 5 6 7 8 9
123 . x x x . . . . . .
456 . . . . x x x . . .
789 . . . . . . . x x x
 0  x . . . . . . . . .
147 . x . . x . . x . .
258 . . x . . x . . x .
369 . . . x . . x . . x

आपका लक्ष्य मेरे लिए इन कार्डों को पंच करने के लिए (एक प्रोग्राम या फ़ंक्शन लिखना) है।

इनपुट: एक संख्या, किसी भी उचित प्रारूप (स्ट्रिंग, पूर्णांक, पूर्णांकों की सूची, और सी।) में ली गई, 99999999999 से अधिक नहीं।

आउटपुट: संख्या इनपुट के अनुरूप छिद्रित स्तंभों की ग्रिड। आपको शीर्षकों या अतिरिक्त रिक्त स्थान की आवश्यकता नहीं है, बस छिद्रित कॉलम स्वयं। जब तक यह पंक्तियों / स्तंभों के बीच व्हाट्सएप हो, तब तक लीडिंग / ट्रेलिंग न्यूलाइन्स ठीक हैं, जब तक यह सुसंगत है । बोलते हुए, जब तक वे सुसंगत हैं, आप छिद्रित के लिए किसी भी (गैर-व्हाट्सएप) चरित्र का उपयोग कर सकते हैं, और बिना किसी अन्य वर्ण के किसी भी व्यक्ति के लिए (जबकि यह स्पष्ट होना चाहिए, कृपया निर्दिष्ट करें कि आप किन वर्णों का उपयोग कर रहे हैं)।

यह कोड-गोल्फ है, इसलिए सबसे छोटा कोड जीतता है। मानक खामियों को अस्वीकार कर दिया जाता है।

परीक्षण के मामले ( छिद्रित के .लिए सभी उपयोग न किए गए x):

In: 911
Out: .xx
     ...
     x..
     ...
     .xx
     ...
     x..

In: 8675309
Out: ....x..
     .x.x...
     x.x...x
     .....x.
     ..x....
     x..x...
     .x..x.x

In: 5553226
Out: ...xxx.
     xxx...x
     .......
     .......
     .......
     xxx.xx.
     ...x..x

2
प्रश्न को हल करने के लिए पूरी तरह से अनावश्यक है, लेकिन यहाँ इन कार्डों / उपकरणों की एक छोटी सी गैलरी है
ब्रफ्ल

आप छिद्रित के लिए किसी भी चरित्र का उपयोग कर सकते हैं, और किसी भी अन्य चरित्र के लिए आप किसी भी गैर- व्हाट्सएप वर्ण का उपयोग कर सकते हैं ?
आउटगॉल्फ

हां, मुझे लगता है कि व्हॉट्सएप को अन्यत्र अनुमति देने के बाद से यह बेहतर होगा। और देखने के लिए सक्षम होने के लिए। में संपादित करेंगे, धन्यवाद।
ब्रफ्ल

1
शांत चुनौती ... एक फोरट्रान 77 उत्तर लिखने के लिए लुभाया, लेकिन यह कैसे गोल्फ के लिए idk
qwr

@qwr "फोरट्रान में गोल्फ के लिए टिप्स" पोस्ट बनाने के लिए स्वतंत्र महसूस करें।
mbomb007 20

जवाबों:



3

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

.tm?djNmX*3NkZ.Dtd3X*7N3Z

0छिद्रित और "अप्रकाशित के लिए उपयोग करता है ।
इसे यहाँ आज़माएँ

व्याख्या

.tm?djNmX*3NkZ.Dtd3X*7N3Z
  m                      Q  For each number in the (implicit) input...
   ?d                       ... if the number is nonzero...
              .Dtd3         ... get (n - 1) divmod 3...
       mX*3NkZ              ... replace each position in `"""` with `0`...
     jN                     ... and stick them together with `"`. ...
                   X*7N3Z   ... Otherwise, `"""0"""`.
.t                          Transpose the result.

3

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

पूर्णांक के एक सरणी के रूप में इनपुट लेता है। एक बाइनरी मैट्रिक्स लौटाता है, जिसमें 0 = अप्रकाशित / 1 = छिद्रित होता है।

a=>[14,112,896,1,146,292,584].map(n=>a.map(i=>n>>i&1))

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


3

05AB1E , 16 15 बाइट्स

0 और 1 का उपयोग करता है ।

ε9ÝÀ3ôD¨ø«¢O}ø»

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

व्याख्या

ε           }     # apply to each digit in input                
 9Ý               # push the range [0 ... 9]
   À              # rotate left
    3ô            # split into pieces of 3
      D¨          # duplicate and remove the last digit (0)
        ø         # transpose
         «        # append
          ¢O      # sum the counts of each in the current digit     
             ø    # transpose
              »   # format output



2

पायथन 3 , 84 80 बाइट्स

def f(s):[print(*[int(i in[~-n//3,6--n%3-3*(n<1)])for n in s])for i in range(7)]

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


आपके पांचवें और छठे पंक्तियों के साथ कुछ कायरता लगता है (वे फ़्लिप किए गए लगते हैं)। [१,२,३] उदाहरण के लिए एक विकर्ण रेखा बनानी चाहिए।
ब्रफ्ल

@ मुझे बताने के लिए धन्यवाद, इसे ठीक कर दिया
१६'१

2

सी (क्लैंग) , 108 107 बाइट्स

c,i;f(*q){char*r;for(i=~0;i++<6;puts(""))for(r=q;c=*r++;c-=48,putchar(".X"[(c--?16<<c%3|1<<c/3:8)>>i&1]));}

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

स्ट्रिंग के रूप में इनपुट नंबर लेता है। उदाहरण के रूप में .और में प्रिंट का उत्पादन X

क्रेडिट

-1 बाइट धन्यवाद @ ASCII- केवल


1
107 , और हेडर को हटा दिया अन्यथा आपको हेडर को बाईटेकाउंट में शामिल करना होगा
ASCII-only

क्या आप कृपया मुझे आम सहमति के लिए इंगित कर सकते हैं कि हेडर के निष्कर्षों को फ़ंक्शन समाधानों की ओर बाइट की गिनती के लिए गिना जाना चाहिए (पूर्ण कार्यक्रम नहीं)
GPS


putchar(".X"[(c--?16<<c%3|1<<c/3:8)>>i&1]))c-=48इसके बजाय सुझावc-=48,putchar(".X"[(c--?16<<c%3|1<<c/3:8)>>i&1]))
छत

2

जे , 31 20 बाइट्स

-11 बाइट्स FrownyFrog के लिए धन्यवाद!

(e."1],0,|:)1+i.@3 3

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

जे , 31 बाइट्स

1*@|:@:#.(a,0,|:a=.1+i.3 3)=/~]

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

इनपुट को अंकों की सूची के रूप में लेता है

० - अप्रकाशित, १ - छिद्रित

स्पष्टीकरण:

   a=.1+i.3 3 - generates the matrix and stores it into a
1 2 3
4 5 6
7 8 9

   (a,0,|:a=.1+i.3 3) - generates the entire comparison table 
1 2 3
4 5 6
7 8 9
0 0 0
1 4 7
2 5 8
3 6 9

   ]=/ - creates an equality table between the input and the comparison table

 ((a,0,|:a=.1+i.3 3)=/~]) 9 1 1
0 0 0
0 0 0
0 0 1
0 0 0
0 0 0
0 0 0
0 0 1

1 0 0
0 0 0
0 0 0
0 0 0
1 0 0
0 0 0
0 0 0

1 0 0
0 0 0
0 0 0
0 0 0
1 0 0
0 0 0
0 0 0

  1*@|:@:#. - adds the tables, transposes the resulting table and finds the magnitude

  (1*@|:@:#.(a,0,|:a=.1+i.3 3)=/~])  9 1 1
0 1 1
0 0 0
1 0 0
0 0 0
0 1 1
0 0 0
1 0 0

@FrownyFrog धन्यवाद! आप हमेशा की तरह शानदार हैं!
गैलेन इवानोव



1

चारकोल , 28 बाइट्स

E⁴⭆θI⁼ι÷﹪⊖λχ³E³⭆θI∧Iλ¬﹪⁻⊖λι³

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। 0/1 का उपयोग करता है, लेकिन 1 बाइट की कीमत पर मनमाने पात्रों का समर्थन कर सकता है: इसे ऑनलाइन आज़माएं! । स्पष्टीकरण:

E⁴              Loop from 0 to 3
  ⭆θ            Loop over input string and join
           λ     Current character
         ⊖      Cast to integer and decrement
        ﹪  χ    Modulo predefined variable 10 (changes -1 to 9)
       ÷    ³   Integer divide by literal 3
     ⁼ι         Compare to outer loop variable
    I           Cast to string
                Implicitly print each outer result on a separate line

E³              Loop from 0 to 2
  ⭆θ            Loop over input string and join
            λ   Current character
           ⊖    Cast to integer and decrement
          ⁻  ι  Subtract outer loop variable
         ﹪    ³ Modulo by literal 3
        ¬       Logical not
       λ        Inner loop character
      I         Cast to integer
     ∧          Logical and
    I           Cast to string
                Implicitly print each outer result on a separate line

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