प्रत्येक अक्षर की 4 प्रतियों के साथ वर्णमाला उत्पन्न करें


27

ध्यान दें कि यह वर्णमाला को चार बार प्रिंट करने के समान नहीं है ।

यह कार्य अंग्रेजी वर्णमाला के प्रत्येक अक्षर की चार प्रतियां बनाने के लिए एक कार्यक्रम लिखना है, प्रति पंक्ति एक पत्र, मानक आउटपुट पर:

A
A
A
A
B
B
B
B

आदि।

प्रत्येक अक्षर के बाद आउटपुट में नई कथानक शामिल होनी चाहिए।

बिना अतिरिक्त आउटपुट वाले बड़े अक्षरों को प्राथमिकता दी जाती है; हालाँकि, यदि आपके कैपिटलाइज़िंग / स्ट्रिपिंग आपके समाधान को लंबा कर देंगे, तो लोअरकेस अक्षर और / या अतिरिक्त व्हाट्सएप स्वीकार्य हैं।

EDD TO ADD: निष्पादन के लिए समाधान पर्याप्त होना चाहिए। मुझे भाषा के कार्यान्वयन को लागू करने में सक्षम होना चाहिए, किसी भी अतिरिक्त कोड को टाइप किए बिना, उत्तर से कोड पेस्ट करें, और परिणाम प्राप्त करें।

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

  1. सी के संबंध में विशेष रूप से, आपको कोड के आसपास main(){... (और गिनती) को शामिल करने की आवश्यकता है }, क्योंकि यह अन्यथा संकलित नहीं करेगा। चेतावनियाँ #include <stdio.h>अभी तक संकलित होने के कारण ठीक नहीं हैं क्योंकि चेतावनी । सामान्य तौर पर, संकलित भाषा के लिए एक संकलित इकाई की आवश्यकता होती है।

  2. एक नंगी अभिव्यक्ति जो वांछित परिणाम देती है वह स्वीकार्य है यदि अभिव्यक्ति को सीधे निष्पादित करने का एक तरीका है; उदाहरण के लिए, यदि भाषा में आरईपीएल है। तो आप हास्केल को बिना main=तब तक जमा कर सकते हैं जब तक कि यह वास्तव में उदाहरण के लिए ghciप्रांप्ट में लिखा गया है । लेकिन चूंकि इसका मतलब है कि letअपनी घोषणाओं पर ध्यान देना, यह runhaskellप्रारूप के साथ रहने के लिए शुद्ध जीत हो सकती है ।

  3. इसी प्रकार, awkस्क्रिप्ट तब होनी चाहिए BEGIN(या END, इस धारणा के साथ कि स्टड संलग्न है /dev/null) ब्लॉकों के बाद से हम किसी इनपुट को संसाधित नहीं कर रहे हैं।

आदि।


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

और क्या मुझे केवल वर्णमाला का उत्पादन करना है?
जस्टिन

@MarkReed क्या मुझे बीच में इसे नईलाइन के साथ प्रिंट करने की आवश्यकता है? सिर्फ इसे ही क्यों न छापें, लेकिन न्यूलाइन्स वैकल्पिक?
जस्टिन

3
इसके अलावा, मैं आपकी चुनौती को फिर से परिभाषित करने की सलाह देता हूं ताकि यह एक चुनौती की तरह अधिक हो और कम से कम इस तरह की कहानी कहे कि आपने अपने उत्तर का आविष्कार कैसे किया।
जस्टिन

अंतिम बिट्स व्हाट्सएप के नियमों का सिर्फ एक टक बनाता है। कृपया क्या आप स्पष्टीकरण दे सकते हैं? विशेष रूप से, क्या मैं यह व्याख्या करने के लिए सही पढ़ रहा हूं कि अतिरिक्त व्हाट्सएप ठीक है लेकिन नईलाइन का चूक नहीं है?
इज़्ज़ी

जवाबों:


16

एपीएल (5)

⍪4/⎕A

4-प्रतिकृति ( 4/) वर्णमाला का मैट्रिक्स प्रारूप ( ⎕A)।


1
पिटने की संभावना नहीं लगती। :)
मार्क रीड ने


एपीएल एक कोड-पेज का उपयोग करता है जो प्रत्येक पात्रों को एक बाइट के लिए मैप करता है। यह कोड पृष्ठ यहां आईबीएम की वेबसाइट पर पाया जा सकता है ।
स्टीवन एच।

@StevenH। लिंक मर चुका है
स्टेन स्ट्रम

@StanStrum मेरा मानना ​​है कि यह लिंक अपव्यय के कारण मृत है, लेकिन कोड गोल्फिंग के लिए यह मेटा उत्तर काम करेगा।
स्टीवन एच।

11

अजगर - 37

for i in range(104):print chr(i/4+65)

i0 से 104 तक जाता है; इसे चार से विभाजित किया गया है और इसके लिए एससीआई मूल्य में जोड़ा गया है A, और परिणामस्वरूप वर्ण मुद्रित किया गया है।


मुझे लगता है कि यह डिफ़ॉल्ट रूप से पूर्णांक विभाजन का उपयोग करता है? अगर PowerShell ने अभी किया तो थोड़े अच्छे होंगे। जैसा कि यह है, पूर्णांक विभाजन में इसे लागू करने के लिए आवश्यक कोड इस ट्रिक के लिए बहुत लंबा है, जिससे मुझे अपनी स्क्रिप्ट पर कुछ भी सहेजने में मदद मिल सके।
इज़्ज़ी

@lszi - पायथन अपने क्यू को ऑपरेंड्स के प्रकार से लेता है। 3/40 है, जबकि 3.0/4.00.75 है; range()पूर्णांक बनाता है।
मार्क रीड

1
यह अजगर के नए संस्करणों पर काम नहीं करता है। सबसे पहले, प्रिंट फ़ंक्शन को कोष्ठक के साथ बुलाया जाना चाहिए, और / अब डिफ़ॉल्ट रूप से पूर्णांक विभाजन नहीं करता है (भले ही दोनों संख्या पूर्णांक हैं), जो कि // s की कोशिश है:for i in range(104):print(chr(i//4+65))

3
@ बेहोशी मुझे पता है कि। मैंने जानबूझकर एक पुराने संस्करण का उपयोग करने के लिए चुना है ताकि इसे बेहतर तरीके से गोल्फ किया जा सके। यदि आप Ideone.com पर इसे चलाने जा रहे हैं, तो आप "पायथन 3" के बजाय "पायथन" चुनेंगे
जस्टिन

3
@ बेहोशी - "अजगर के नए संस्करण" द्वारा, आप "पायथन 3" का उल्लेख कर रहे हैं, जो इस बिंदु पर सार्वभौमिक रूप से अपनाया गया है। मैं आमतौर पर यह मानता हूं कि निर्दिष्ट संस्करण के बिना "पायथन" होने का दावा करने वाला कुछ भी अन्यथा साबित होने तक पायथन 2.x है; पायथन 3 कोड स्पष्ट रूप से लेबल किया गया है।
मार्क रीड

8

आर, 30 28 27

write(rep(LETTERS,e=4),1,1)

30 बाइट्स के साथ पूर्व संस्करण:

cat(rep(LETTERS,e=4),sep="\n")

मुझे लगता है कि शाब्दिक न्यूलाइन एक बाइट छोटी है :)
Giuseppe

@Giuseppe क्या आप इस विचार को निर्दिष्ट कर सकते हैं?
स्वेन होइनस्टीन


@Giuseppe वास्तव में अच्छा विचार है! इशारा करने के लिए धन्यवाद।
स्वेन हेनस्टीन

आप के रूप में अच्छी तरह से stdout निर्दिष्ट 1करने के ""लिए उपयोग कर सकते हैं write, जो एक और बाइट बचाता है।
ग्यूसेप

7

सी, 59

मैं इसे एक अप्रतिस्पर्धी रूप से लंबा जवाब देता हूं, केवल इसलिए कि मुझे अभी तक सी सबमिट नहीं दिखाई देता है। और यही मुझे दुखी करता है। : - /

LATER: इसके लिए @moala को एक "/ 4" int वर्जन देने की तैयारी की जा रही है, जिससे 13 चार्ट बचेंगे!

float i;main(){while(i<26)printf("%c\n",65+(int)i),i+=.25;}

मैंने अपना उत्तर संपादित कर लिया है, अब 2 और चार्ट भी सहेज रहा हूँ!
मूला

और दूसरा!
मूला

6

जे: 18 13

4#u:65+i.26 1

मैं अभी भी जम्मू के साथ बहुत अस्थिर हूं, इसलिए यह शायद बेहतर हो सकता है


3
आप #विभाजन का उपयोग कर सकते हैं ( ) जैसे विभाजन के बजाय 4#u:65+i.26 1:। इसके अलावा, ~एक फ़ंक्शन के तर्कों को स्वैप करता है, इसलिए यदि आप कभी भी खुद को ऐसा करते हुए पाते हैं (expression) F value, तो आप value F~ expressionएक चरित्र को बचाने के लिए उसे बदल सकते हैं ।
मारिनस

@marinus टिप के लिए धन्यवाद। मैं अभी भी J सीख रहा हूं और उन प्रकार के ट्रिक्स के साथ कोई भी अच्छी जानकारी प्राप्त करना कठिन है।
pswg

1
4#65{26,.\a.12 बाइट्स के लिए।
FrownyFrog

5

रूबी, २३

puts ([*?A..?Z]*4).sort

@Manatwork का सारा श्रेय - उनकी टिप्पणी को जाता है, यह नहीं। :)


विशाल। @manatwork, मैं संपादन करूंगा, लेकिन जाहिर है कि मैं किसी भी क्रेडिट के लायक नहीं हूं!
डैरेन स्टोन

5
बेहतर इसे बनाते हैं puts [*?A..?Z].map{|i|[i]*4}या puts ([*?A..?Z]*4).sort, इसलिए अक्षरों को उदाहरण के रूप में आदेश दिया जाता है।
19

2
@manatwork: puts (?A..?Z).map{|i|[i]*4}छोटा चरित्र है। आप mapएक सीमा पर सीधे कॉल कर सकते हैं , इसलिए आपको इस मामले में स्‍पैट की जरूरत नहीं है।
मार्क रीड

5

पॉवरशेल: 32 23

गोल्फ कोड:

[char[]](65..90*4)|Sort

पूर्वाभ्यास:

[char[]](... )वस्तुओं का एक सरणी लेता है और उन्हें ASCII वर्णों में परिवर्तित करता है।
65..90AZ के लिए ASCII कोड हैं।
*4श्रृंखला को 4 बार दोहराता है।
|Sortउत्पादन को हल करें।

ध्यान दें:

यदि आप इस फाइल को लिखना चाहते हैं >, तो अंत में, फ़ाइल नाम के बाद फेंक दें ।


5

हास्केल, 46

x a=a++a
main=putStr$['A'..'Z']>>=x.x.(:"\n")

1
putStr$['A'..'Z']>>=("golf">>).(:"\n")8 बिट्स बचाता है
17

5

Befunge 98 - 18

1+::'g`#@_4/'A+,a,

एक संख्या को संचय करके काम करता है और जब यह 104 तक पहुंचता है तो समाप्त हो जाता है। 4 से विभाजित संख्या के लिए वर्णमाला के संबंधित वर्ण को प्रिंट करता है, उसके बाद एक नई पंक्ति। लेकिन अगर मुझे प्रत्येक पत्र के बाद एक नई पंक्ति जोड़ने की आवश्यकता नहीं है, तो यह 16 वर्ण है:

1+::'g`#@_4/'A+,

कम किया जा सकता है अगर मैं अधिक वर्णों को मुद्रित कर सकता हूं (अर्थात वे सभी चार बार) ( 7 6 वर्ण, यहां तक ​​कि बेफून 93 में काम करता है):

1+:4/,

न्यूलाइन के साथ:

1+:4/,a,


4

पर्ल 5, 21

map{print"$_
"x4}A..Z

2
यह मेरे लिए कभी नहीं हुआ है कि मैं पर्ल में एक डबल-उद्धृत स्ट्रिंग के अंदर एक शाब्दिक नई पंक्ति लगाऊं। +1।
मार्क रीड

मुझे ध्यान देना चाहिए, कि मैं या तो नहीं था, लेकिन @manatwork ने मेरा एक और जवाब दिया और यह अटक गया!
डोम हेस्टिंग्स

4

C, 46 44 43

46 :

i;main(){while(i<104)printf("%c\n",65+i++/4);}

44 :

i=260;main(j){for(;(j=i++>>2)<91;puts(&j));}

44 भी:

i=260;main(j){while(j=i++>>2,j<91)puts(&j);}

थैंक्स टू @marinus, 43:

i=260;main(j){while(j=i++/4,j<91)puts(&j);}

क्या मुझे ४२ पाने के लिए एक इनाम जोड़ना चाहिए? :)


6
50 प्रतिनिधि। कुछ भी टिप्पणी करने की आवश्यकता है, और इस टिप्पणी को पोस्ट करने के समय आपके पास 101 हैं।
syb0rg

महान! धन्यवाद! उत्तर संपादित किया गया!
मूला

1
आप >>2द्वारा प्रतिस्थापित कर सकते हैं /4
मारिनस

4

जावा: ५६

for(int i=0;i<104;)System.out.println((char)(i++/4+65));

संपादित करें: 'प्रिंट' से 'प्रिंटलाइन' में परिवर्तित


प्रत्येक अक्षर के बाद आउटपुट में नई कथानक शामिल होनी चाहिए।
पियरे अरलाउड

इस ओर इशारा करने के लिए धन्यवाद, इसे अब हर बार एक नई लाइन
छापनी

2
The solution must be complete enough to execute. I should be able to invoke an implementation of the language, paste the code from the answer, and get results, without typing any additional code. मुझे लगता है कि आपका समाधान इस शर्त का उल्लंघन करता है
user902383

2
@ user902383 यदि आप इसे JShell (जावा 9 में जावा REPL) में पेस्ट करते हैं तो यह काम करता है, और आपको अंतिम अर्धविराम की भी आवश्यकता नहीं है।
डेविड कॉनराड

@DavidConrad इसके भयानक, मुझे लगता है कि मैं REPL / JShell का उपयोग करना शुरू कर सकता हूं।
user902383


4

दरअसल, 6 बाइट्स

4ú*SÖi

यहाँ कोशिश करो!

व्याख्या

4ú*SÖi

4 *         Do 4 times
 ú          Create string of alphabet in lowercase
   S        Sort it
    Ö       Switch Case
     i      Push each character of string

लोअरकेस के साथ 4 बाइट्स और कोई नई रेखा नहीं:

4ú*S

1
PPCG में आपका स्वागत है!
एर्ग आउटफोलर

4

16-बिट x86 मशीन कोड MS-DOS COM, 25 बाइट्स

हेक्स में:

B409BA160189D7B96800F6C1037502FE05CD21E2F5C3400A24

यह एक पूर्ण MS-DOS .COM प्रोग्राम है। .Com एक्सटेंशन वाली फ़ाइल को बाइट अनुक्रम कॉपी करें और इसे डॉसबॉक्स से चलाएं

disassembly:

00: B4 09        mov    ah,0x09         ;INT 21h "Write string to STDOUT" function
02: BA 16 01     mov    dx,0x116        ;Address of the string s ('$'-terminated)
05: 89 D7        mov    di,dx           ;Because there's no way to dereference address in DX
07: B9 68 00     mov    cx,104          ;CX=26*4
_0000000A:
0A: F6 C1 03     test   cl,0x03         ;When lower two bits are zero...
0D: 75 02        jne    _00000011       ;...do not skip the next instruction
0F: FE 05        inc    b,[di]          ;*s++
_00000011:
11: CD 21        int    21              ;Print the string
13: E2 F5        loop   _0000000A       ;Until --CX==0
15: C3           retn
16: 40           db     0x40            ;s[0], starts with 'A'-1
17: 0A           db     0x0A            ;'\n'
18: 24           db     '$'             ;Terminator required by the print function


3

AWK, 48

आइए इसे AWK के साथ आज़माएं ...

END{s=65;for(i=104;i--;s+=0==i%4)printf"%c\n",s}

जैसा कि मैनेटवर्क द्वारा सुझाव दिया गया है कि हम 2 वर्णों से छुटकारा पा सकते हैं

AWK, 46 (संपादित करें)

END{for(i=104;i--;s+=0==i%4)printf"%c\n",s+65}

AWK, 40 ( MarkReed का कोड संपादन )

END{for(;i<104;){printf"%c\n",i++/4+65}}

वेरिएबल s के आरंभीकरण को हटाकर आप 2 वर्णों को छोड़ सकते हैं END{for(i=104;i--;s+=0==i%4)printf"%c\n",s+65}:।
मैनेटवर्क

1
किसी ENDब्लॉक में कोड डालने का मतलब है कि उसे काम करने के लिए एक इनपुट स्ट्रीम (भले ही वह हो /dev/null) की आवश्यकता है। क्या यह चार गिनती को संशोधित करता है? वैसे भी, BEGIN{for(;++i<104;){printf"%c\n",i/4+65}}5 चार्ट कम है।
मार्क रीड

@MarkReed आपका कोड काम नहीं कर रहा है। चेक इस
Wasi

डी 'ओह। बहुत करीब! :) लेकिन मुझे अभी भी ENDइनपुट स्ट्रीम के लिए पैटर्न की आवश्यकता पसंद नहीं है ...
मार्क रीड रीड


3

C # LINQ 115 बाइट्स 110 बाइट्स

Enumerable.Range(65, 26).SelectMany(i => Enumerable.Repeat(i,4))
.ToList().ForEach(i=> Console.WriteLine((char)i));

1
PPCG में आपका स्वागत है! अच्छी पहली पोस्ट!
R



3

पर्ल 6, 32

.say for (('A'..'Z') »xx»4)[*;*]

मुझे लगता है कि यह पहली बार है जब पर्ल 6 पहला उपाय था, जिसके बारे में मैंने सोचा था, लेकिन हाइपरपॉटर सिर्फ एक प्राकृतिक फिट लग रहा था।
मार्क रीड

3

कैनवस , 5 बाइट्स

Z41*⟳

यहाँ कोशिश करो!

स्पष्टीकरण:
Code        | Explanation                                  | Stack
------------+----------------------------------------------+------------------------------
Z          | The uppercase alphabet                       | "ABC..."
  41*     | Stretched by 4 horizontally and 1 vertically | "AAAABBBBCCCC..."
        ⟳  | Rotated clockwise                            | "A¶A¶A¶A¶B¶B¶B¶B¶C¶C¶C¶C¶..."
            | Print ToS (implicit)                         |

मुद्रण के साथ प्रतिस्थापित करने के साथ \n



3

ब्रेनफक , 48 बाइट्स

+++[[-<+>>++<]+>]<<<<<<+[->,++++[->.<<<.>>]>+<<]

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

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


मैं एक नया पोस्ट करने वाला था, लेकिन आप पूरी तरह से आउट-ऑफ करने में सफल रहे, मुझे 71+ बाइट्स +++++++ [-> ++> +++++++++++++ के साथ मिले। ++ <<<] ++++> +> ++> +++++ <[-।।।।।।।।> << >> << >> << >> + <<>]
KrystosTheOverlord




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