একটি তাবুলা রেক্টা প্রিন্ট করুন!


81

একটি তাবুলা রেক্টা প্রিন্ট করুন!

তাবুলা রেক্টা (কখনও কখনও 'ভিগনির টেবিল' নামে পরিচিত) জোহানেস ত্রিতিমিয়াস তৈরি করেছিলেন এবং এটি বেলাসোর ভিজেনারে সাইফার এবং ত্রিথিমিয়াস সিফারের সমস্ত রূপগুলি সহ বেশ কয়েকটি সিফারে ব্যবহৃত হয়েছে। দেখে মনে হচ্ছে:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
CDEFGHIJKLMNOPQRSTUVWXYZAB
DEFGHIJKLMNOPQRSTUVWXYZABC
EFGHIJKLMNOPQRSTUVWXYZABCD
FGHIJKLMNOPQRSTUVWXYZABCDE
GHIJKLMNOPQRSTUVWXYZABCDEF
HIJKLMNOPQRSTUVWXYZABCDEFG
IJKLMNOPQRSTUVWXYZABCDEFGH
JKLMNOPQRSTUVWXYZABCDEFGHI
KLMNOPQRSTUVWXYZABCDEFGHIJ
LMNOPQRSTUVWXYZABCDEFGHIJK
MNOPQRSTUVWXYZABCDEFGHIJKL
NOPQRSTUVWXYZABCDEFGHIJKLM
OPQRSTUVWXYZABCDEFGHIJKLMN
PQRSTUVWXYZABCDEFGHIJKLMNO
QRSTUVWXYZABCDEFGHIJKLMNOP
RSTUVWXYZABCDEFGHIJKLMNOPQ
STUVWXYZABCDEFGHIJKLMNOPQR
TUVWXYZABCDEFGHIJKLMNOPQRS
UVWXYZABCDEFGHIJKLMNOPQRST
VWXYZABCDEFGHIJKLMNOPQRSTU
WXYZABCDEFGHIJKLMNOPQRSTUV
XYZABCDEFGHIJKLMNOPQRSTUVW
YZABCDEFGHIJKLMNOPQRSTUVWX
ZABCDEFGHIJKLMNOPQRSTUVWXY

আমার প্রায়শই এটির প্রয়োজন হয় তবে এটি অনুলিপি করে আটকানোর জন্য ইন্টারনেটে কোথাও খুঁজে পাচ্ছি না। স্কোয়ার টেবিলটি এত দীর্ঘ, এবং টাইপ করতে ফ্রিগিং বয়সগুলি গ্রহণ করে , আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত হতে হবে।

বিধি / আবশ্যকতা

  • প্রতিটি জমাটি একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন হওয়া উচিত। যদি এটি কোনও ফাংশন হয় তবে এটি অবশ্যই প্রোগ্রামের নীচে ফাংশন কল যুক্ত করে প্রয়োজনীয়ভাবে চালানো উচিত। অন্য যে কোনও কিছু (যেমন সিতে শিরোনাম) অবশ্যই অন্তর্ভুক্ত থাকতে হবে।
  • যদি এটি সম্ভব হয় তবে এমন কোনও সাইটের লিঙ্ক সরবরাহ করুন যেখানে আপনার প্রোগ্রামটি পরীক্ষা করা যেতে পারে।
  • আপনার প্রোগ্রাম অবশ্যই কিছু লিখতে হবে না STDERR
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • আপনার প্রোগ্রামটি যে কোনও ক্ষেত্রে আউটপুট দিতে পারে তবে এটি অবশ্যই মুদ্রিত হওয়া উচিত (অ্যারে বা অনুরূপ নয়)।

স্কোরিং

বাইট অনুসারে প্রোগ্রামগুলি স্কোর করা হয়, ইউটিএফ -8 এ ডিফল্টরূপে বা আপনার পছন্দের ভিন্ন চরিত্রের সেট।

শেষ পর্যন্ত, কমপক্ষে বাইট সহ উত্তরটি জিতবে।

জমা

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেম্পলেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

# Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes

লিডারবোর্ড

নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।


নিয়ম 1 সম্পর্কে: আমাদের ব্যবহার করা প্রতিটি ফাংশনের জন্য আমাদের প্রতিটি শিরোনামকে অন্তর্ভুক্ত করতে হবে?
owacoder

আমি বোঝাতে চাইছি যদি আমরা ব্যবহার করি তবে আমাদের printfঅন্তর্ভুক্ত করা দরকার stdio.h, যদি isalphaব্যবহৃত ctype.hহয় তবে প্রয়োজনীয় হয় ইত্যাদি thisএটি সঠিক?
owacoder

3
আপনার সম্ভবত চ্যালেঞ্জের বিবরণীতে "ছোট হাতের অনুমতি দেওয়া" থাকা উচিত। ঠিক তাই লোকেরা এই মন্তব্যগুলি না দেখলে এটিকে মিস করার সম্ভাবনা কম।
শার্লক 9

2
আমাকে কি এটি মুদ্রণ করতে হবে বা আমি কোনও স্ট্রিং / চর অ্যারে
ফিরতে পারি

1
আমাকে সারা রাত জেগে থাকার জন্য প্রশ্নের জন্য ধন্যবাদ। (+1)
আনাস্তাসিয়া-রোমানোভা 秀

উত্তর:


30

05 এ বি 1 ই , 6 5 বাইট

1 বাইট সাশ্রয় করার জন্য ডাউনগোটকে ধন্যবাদ । কোড:

ADv=À

ব্যাখ্যা:

A      # Push the lowercase alphabet.
 D     # Duplicate it.
  v    # For each in the alphabet...
   =   #   Print without popping and with a newline.
    À  #   Rotate 1 to the left.

সিপি -1222 এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!


এটির সদৃশ করার উদ্দেশ্য কী?
19.32

1
@ চ্যালেঞ্জার 5 vকমান্ডটি এটির পুনরাবৃত্তি করে একটি মান গ্রহণ করে। এই ক্ষেত্রে, এটি বর্ণমালা গ্রাস করে, তাই এটি 26 বার পুনরাবৃত্তি করে। এটি আমাদের ফাংশনটির পুনরাবৃত্তি করতে প্রয়োজন ঠিক পরিমাণ । =পাতার স্ট্যাক অক্ষত এবং Àশুধুমাত্র বাম স্ট্যাক উপাদান 1 উপরের rotates। এটা কি তোমার প্রশ্নের উত্তর? :)
আদনান

101

Vim, 25 23 বাইট

:h<_↵jjYZZP25@='Ypx$p'↵

কোথায় ফিরে চাবিকাঠি।

:h<_↵                       Open the help section v_b_<_example.
     jjY                    Copy the "abcdefghijklmnopqrstuvwxyz" line.
        ZZP                 Close this buffer and paste in ours.
           25@='     '↵     Run these commands 25 times:
                Yp          Duplicate line and move to column 1 of new line.
                  x         Cut the first character.
                   $p       Move to the end and paste.

সমাধানের জিআইএফ

সম্পাদনা : ছোট হাতের অক্ষর ঠিক আছে, তাই আমি দুটি কী সংরক্ষণ করতে পারি।


23
যে :h<_<cr>jjYপ্রতিভা
Downgoat

3
বাহ, আশ্চর্যজনক! ওপি বলেছিল লোয়ার V~
केস

4
: @RobStarling দেখুন meta.codegolf.stackexchange.com/q/8995/40695
Downgoat

4
আমি ইম্যাকস এ চেষ্টা করার জন্য কারও সাহস করি।
অ্যাডিসন

2
@ অ্যাডিসন ইম্যাকস উত্তর
টুকসক্র্যাটিং

24

পাইথন 2, 59 57 53 বাইট

a=range(65,91)*27
a[::-27]=[10]*26
print bytearray(a)

-X বাইটের জন্য @ এসএসটকে ধন্যবাদ!


4
আমার এটা ভাল লেগেছে. যাইহোক, আপনি শেষ লাইনটি সংক্ষিপ্ত করতে পারেন print bytearray(a)
xsot

18

/// , 220 বাইট

/|/\/\///n/WXY|m/JKL|l/PQRS|k/CDEF|j/ZaNfV|i/MbAeI|h/TUcO|g/GHdB|f/OlTU|e/BkGH|d/ImMbA|c/VnZaN|b/NfVnZ|a/AeImM/ab
ed
kg
DEFgC
EFgCD
FgCDE
gk
HdBkG
de
mi
KLiJ
LiJK
im
ba
fc
lh
QRShP
RShPQ
ShPQR
hl
UcOlT
cf
nj
XYjW
YjWX
jn

এটি অনলাইন চেষ্টা করুন!

এটি আশ্চর্যজনকভাবে অ-তুচ্ছ ছিল এবং এটি অনুকূল কিনা আমার কোনও ধারণা নেই ue

/// ইন এর মতো সমস্যার গল্ফ করার একমাত্র উপায় হ'ল সাধারণ সাবস্ট্রিংগুলি বের করা। ( দেখা যাচ্ছে আমি ভুল ছিলাম ) তবে তবে আউটপুটটির প্রকৃতির কারণে কোন সাবস্ট্রিংগুলি উত্তোলন করা উচিত তা স্পষ্ট নয় কারণ লাইনব্রেকের কারণে আপনি আসলে সম্পূর্ণ বর্ণমালা বের করতে পারবেন না। সুতরাং আপনাকে মোড়ানো বর্ণমালার কয়েকটি সাবস্ট্রিংগুলি বের করতে হবে, তবে আপনি কতক্ষণ সাবস্ট্রিংগুলি তৈরি করেন এবং কোনটি আপনি চয়ন করেন তা অনুসারে ট্রেড-অফ রয়েছে।

তাই আমি এখানে কি। এটি একটি সিজেএম স্ক্রিপ্ট যা প্রদত্ত স্ট্রিংয়ে 25 টি দৈর্ঘ্যের সমস্ত সাবস্ট্রিংগুলি সন্ধান করে এবং তাদের প্রত্যেকের জন্য এটির উত্তোলন কতগুলি বাইট সংরক্ষণ করবে তা গণনা করে। মূলত যদি Nএকটি দৈর্ঘ্য- Mস্ট্রিংয়ের অনুলিপি থাকে তবে আপনি (N-1)*(M-1) - 5সাবস্ট্রিংগুলি সংরক্ষণ করতে পারবেন , এই সাবস্ট্রিংগুলিতে স্ল্যাশ নেই। এছাড়াও, প্রযুক্তিগতভাবে, যখন আপনি ইতিমধ্যে 8 টি সাবস্ট্রিংগুলি বের করেছেন, শেষে ধ্রুবক অফসেটটি হ্রাস পাবে -4, তবে স্ক্রিপ্ট এটি বিবেচনা করে না।

যাইহোক, স্ক্রিপ্টটি দিয়ে আমি এখানে যা করেছি:

  • বর্তমান কোডের বিরুদ্ধে স্ক্রিপ্টটি চালান (যা প্রাথমিকভাবে কেবলমাত্র আউটপুট) is
  • যে সাবস্ট্রিংগুলি সর্বাধিক উন্নতি অর্জন করে তার মধ্যে সংক্ষিপ্ততমটি বেছে নিন। যদি বেশ কয়েকটি থাকে, তবে অভিধান সংক্রান্ত ক্ষুদ্রতর চয়ন করুন (আমি যা বলতে পারি তা থেকে, প্রদত্ত ইনপুটটির জন্য এটি সাবস্ট্রিংগুলির মধ্যে ওভারল্যাপ হ্রাস করে)।
  • কোডে নির্বাচিত সাবস্ট্রিংয়ের সমস্ত উপস্থিতি একটি অব্যক্ত লোয়ার কেস লেটারের সাথে প্রতিস্থাপন করুন।
  • কোডটি প্রস্তুত করুন /x/ABC/যেখানে xনির্বাচিত চিঠি এবং ABCসাবস্ট্রিং।
  • কোনও সাবস্ট্রিং না থাকা পর্যন্ত পুনরাবৃত্তি করুন যা কোনও কিছু রক্ষা করতে পারে।

শেষে, আমরা ফলে প্রতিস্থাপন আরো কয়েকটি বাইট সংরক্ষণ //সঙ্গে |এবং prepending /|/\/\//(এই কারণেই, সাবস্ট্রিং আহরণের শুধুমাত্র 4 5 পরিবর্তে বাইট 8th সাবস্ট্রিং বা তাই পরে খরচ)।

আমি যেমন বলেছিলাম, এটি সর্বোত্তম কিনা তা আমার কোনও ধারণা নেই এবং আমি বরং অনিয়মিত চেহারার ফলাফলটি বেশ আকর্ষণীয় মনে করি। লাইন থেকে কোথাও অপ-অনুকূল (তবে আরও) সাবস্ট্রিংগুলি বেছে নিয়ে সংক্ষিপ্ত সমাধানে পৌঁছানো সম্ভব। আমি ভাবছি এই সমস্যার জটিলতা শ্রেণিটি কী ...


এটি ... হ'ল ... উজ্জ্বল ...
জর্জ গিবসন

1
@ জর্জিগসন ধন্যবাদ ... আউটপুটটিতে একটি নির্দিষ্ট লক্ষ্য করার পরে আমাকে অর্ধেক পেরিয়ে যেতে হয়েছিল YX। ;)
মার্টিন ইন্ডার

আমার উত্তরটি গেছে, এটি এর একটি ধূপ ছিল (বড় এবং পরে)। + [অবিশ্বাস্য গল্ফিং] এর জন্য!
এরিক আউটগল্ফার

জটিলতা শ্রেণীর বিষয়ে, /// টিউরিং সম্পূর্ণ হওয়ার পরে কি সমস্যাটি অনস্বীকার্য হওয়া উচিত নয়? সমস্যাটি "একটি স্ট্রিং দেওয়া হয়েছে, এটি সংক্ষিপ্ততম /// প্রোগ্রামটি খুঁজে বের করে এটি সন্ধান করুন"। ছোট স্ট্রিং ব্যতীত, এখানে /// প্রোগ্রামগুলি উপস্থিত থাকবে যা অনির্দিষ্টকালের জন্য লুপ করে (তবে এটি অনির্দিষ্টকালের জন্য লুপ হিসাবে প্রমাণিত হতে পারে না) যা সেগুলি চিরতরে চালানো ছাড়া কাঙ্ক্ষিত আউটপুট উত্পাদন না করে দেখানো যায় না। আনুষ্ঠানিক প্রমাণ আমি নিজেই এখনও নিশ্চিত নই তবে স্বজ্ঞাতভাবে এটি সম্ভব নয় কি?
ভূত_স_ই_ কোড

16

সি, 47 বাইট

i;f(){for(i=702;i--;)putchar(i%27?90-i%26:10);}

আইডিয়নে চেষ্টা করে দেখুন

একটি লুপ, প্রতি 26 টি অক্ষরে বর্ণমালা মুদ্রণ করে তবে প্রতি 27 তম অক্ষর দ্বারা একটি নতুন লাইন দ্বারা প্রতিস্থাপিত হয়।


1
অভিশাপ! আমি ঠিক ঠিক একই ফাংশন লিখেছি! :-) আপনি কোনও আর্গুমেন্ট ছাড়াই f(i)কেবল কল করে আপনি প্রথম সেমিকোলনটি সংরক্ষণ করতে পারেন f()
স্তর

@ লেভেলরিভারস্ট এটি অপরিজ্ঞাত আচরণের উপর নির্ভর করবে।
অ্যান্ডারস ক্যাসরগ

2
এটি শেষ পর্যন্ত আপনার উপর নির্ভর করে, তবে পিপিসিজি ভাষাগুলি তাদের বাস্তবায়ন দ্বারা সংজ্ঞায়িত হিসাবে বিবেচনা করে, আপনি যতক্ষণ না এটি কোন সংকলকটিতে এটি কাজ করে উল্লেখ করেন ততক্ষণ পর্যন্ত ইউবির উপর নির্ভর করা কোনও সমস্যা হিসাবে বিবেচিত হবে না।
ডেনিস

প্রথম উল্লেখ করার সময় আপনি শুরু করে আপনি 1 বাইট শেভ করতে পারেন:i=702;f(){for(;i--;)//...
টুকুসি


15

জে, 15 বাইট

u:65+26|+/~i.26

অনলাইন দোভাষী

u:65+26|+/~i.26
           i.26  creates vector [0 1 2 ... 25]
        +/~      builds an addition table with itself
     26|         modulo 26 to every element
  65+            add 65 to every element
u:               convert every element from codepoint to character

নিস! খুব চতুর পাটিগণিত। সবচেয়ে সহজ পদ্ধতির যা |. (Shift)8 বাইট দীর্ঘ! (i.26)(|."0 _)u:65+i.26
ড্যান ওক

1
@ ডাহনাক আপনি এটিকে 16 বাইটে সংক্ষিপ্ত করতে পারবেন u:65+1&|.^:]i.26যেহেতু পাওয়ার অ্যাডাবাইটগুলি কোনও তালিকা দেওয়া থাকলে পূর্ববর্তী ফলাফলগুলি ট্র্যাক করে।
মাইল

1
@ মাইলস চমৎকার, আমার ব্যবহারটি |.17 বাইট: u:65+|."0 1/~i.26(এখনও ব্যবহার করছে /~)
লিকি নুন

1
@ লেকিউন আরও 17 টি বাইট পদ্ধতির উপায় u:65+(|./~,.)i.26। আমি একটি হুক ব্যবহার করে এবং ,.ব্যাপ্তিটি কলামাইজ করে র‌্যাঙ্ক থেকে মুক্তি পেয়েছি তবে এটি একই দৈর্ঘ্যে শেষ হয়েছে।
মাইল 23

আপনি কি জানেন না আমি কোথাও ট্রাইজ.টকের উত্স কোডটি খুঁজে পেতে পারি? লেখক (f211)
ড্যান ওক

15

/// , 128 বাইট

/:/fABCDEFGHIJKLMNOPQRSTUVWXYZ
fbfbAfxf
xbA_xf_x
xfbbbAfbb//x/bff//f/\///b/\\:B:C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q:R:S:T:U:V:W:X:Y:Z:

এটি অনলাইন চেষ্টা করুন!

এল-ফ্যাবেট চ্যালেঞ্জের জাকুবের আশ্চর্যজনক উত্তরে অনুপ্রাণিত হয়ে , আমি ভেবেছিলাম যে আমি /// এ আসল প্রোগ্রামিংয়ে আমার হাতটি চেষ্টা করব কেবল এটি সংক্ষেপণের জন্য ব্যবহার করার বিপরীতে। এটি বেশ কৌতূহলোদ্দীপক ছিল এবং আমার চারটি প্রচেষ্টা দরকার ছিল, তবে শেষ পর্যন্ত এটি আমার সংক্ষেপণ-ভিত্তিক সমাধানের চেয়ে অনেক কম সংক্ষিপ্ত আকারে বেরিয়ে এসেছিল ।

ব্যাখ্যা

/// এ একটি দ্রুত প্রাইমার: মূলত দোভাষী কেবলমাত্র অক্ষর অনুসারে কোড বর্ণটি পড়ে এবং নিম্নলিখিতগুলি করেন:

  • যদি এটি না হয় \এবং না হয় তবে এটি /মুদ্রণ করুন।
  • যদি এটি হয় \তবে পরবর্তী অক্ষরটি মুদ্রণ করুন।
  • যদি এটি হয় তবে /একটি /x/y/নির্দেশকে পার্স করুন (একইভাবে বেঁচে থাকার নিয়ম সহ) এবং বার বার সমস্ত xকোডটি এর সাথে বিকল্প হিসাবে রেখে দিন y

জাকুবে থেকে আরও কিছু অনুপ্রেরণা নিচ্ছেন, সরলতার জন্য আমি এর একটি 4x4 সংস্করণ ব্যাখ্যা করব:

/:/fABCD
fbfbAfxf
xbA_xf_x
xfbbbAfbb//x/bff//f/\///b/\\:B:C:D:

আমরা :দ্বিতীয় এবং তৃতীয়টির মধ্যে স্টাফ দিয়ে তাদের প্রতিস্থাপন করে শুরু করি /। এরপরে শেষের সারিগুলি ঘোরানো কোড হয়ে যাওয়ার এটি শেষ হবে। আমরা এটি পেয়েছি:

/x/bff//f/\///b/\\fABCD
fbfbAfxf
xbA_xf_x
xfbbbAfbbBfABCD
fbfbAfxf
xbA_xf_x
xfbbbAfbbCfABCD
fbfbAfxf
xbA_xf_x
xfbbbAfbbDfABCD
fbfbAfxf
xbA_xf_x
xfbbbAfbb

f, bএবং xশুধু সাধারণ স্ট্রিং, যা আমরা এখন প্রসারিত করব জন্য shorthands হয়। fস্ল্যাশ জন্য, bব্যাকস্ল্যাশ জন্য এবং xজন্য \//যা বেশ অনেক আসা পর্যন্ত ঘটবে। আমি সিঙ্গল-ক্যারেক্টার সাবস্ট্রিংয়ের জন্য এলিয়াস ব্যবহার করছি /এবং \এটি হ'ল প্রথম প্রতিস্থাপনের নির্দেশে তাদের এড়িয়ে যেতে হবে, সুতরাং আমি আসলে এই সমস্ত ব্যাকস্ল্যাশগুলির প্রয়োজন না করে বেশ কয়েকটি বাইট সংরক্ষণ করছি। এখানে কি আমরা পরে পেতে x, fএবং bপূরণ করা হয়েছে:

ABCD
/\/\A/\///
\//\A_\///_\//
\///\\\A/\\B/ABCD
/\/\A/\///
\//\A_\///_\//
\///\\\A/\\C/ABCD
/\/\A/\///
\//\A_\///_\//
\///\\\A/\\D/ABCD
/\/\A/\///
\//\A_\///_\//
\///\\\A/\\

খুব পঠনযোগ্য।

সুতরাং প্রথম লাইনটি কেবল ভারব্যাটিম মুদ্রিত হয়েছে। তারপরে আমরা মজাদার অংশে পৌঁছে যা আরও সমস্ত সারি ঘোরে। এটিতে চারটি আলাদা নির্দেশ রয়েছে। একটি বিষয় লক্ষণীয় যে আমি Aএই নির্দেশাবলীর মধ্যে সমস্ত উপস্থিতি এড়িয়ে গেছি । এর কারণ হ'ল এটি আমাকে বাকি সারিতে Aথাকা নির্দেশাবলীর মধ্যে আলাদা করতে দেয় A, যা আলাদাভাবে প্রক্রিয়া করা প্রয়োজন।

/\/\A/\//

এই ম্যাচ /Aএবং সঙ্গে এটি প্রতিস্থাপন /, অপসারণ A। মনে রাখবেন যে এই স্ট্ররিংটি কেবল প্রতিটিটির সম্মুখভাগে উপস্থিত হয় ABCD, সুতরাং এটি পরবর্তী সমস্ত লাইনের প্রথম অক্ষরটি ড্রপ করে:

/
\//\A_\//

এটি একটি লাইনফিডের সাথে স্ল্যাশের পরে মেলে এবং এর সাথে এটি প্রতিস্থাপন করে A_/। সুতরাং এটি Aপ্রতিটি রেখার শেষে একটি সন্নিবেশ করায় , ঘূর্ণনটি সম্পূর্ণ করে এবং লাইনফিডটিকে আন্ডারস্কোরতে পরিণত করে।

/_\//
\//

এটি মিলে যায় _/এবং স্ল্যাশের পরে একটি লাইনফিডের সাথে এটি প্রতিস্থাপন করে। আন্ডারস্কোরের মাধ্যমে আমাকে এই মোড় ঘুরিয়ে দেওয়ার যে কারণটি প্রয়োজন তা হ'ল /// প্রতিটি নির্দেশকে বারবার প্রয়োগ করে স্ট্রিংটি আর মেলে না until তার মানে আপনি ফর্মের একটি নির্দেশ ব্যবহার না করতে পারেন /x/axb/যেখানে x, aএবং bনির্বিচারে স্ট্রিং হয়, কারণ পরে প্রতিকল্পন xসবসময় এখনও ম্যাচ হবে। বিশেষত, এর অর্থ আমরা একটি লাইনফিডের সামনে কিছু সন্নিবেশ করতে পারি না। আমাদের প্রক্রিয়াটিতে লাইনফিডটি প্রতিস্থাপন করতে হবে এবং এই প্রতিস্থাপনটি পূর্বাবস্থায় ফেরাতে হবে।

/\\\A/\\B/

এটি মেলে \Aএবং এর সাথে এটি প্রতিস্থাপন করে \B, যাতে অবশিষ্ট সারিগুলির পরে নির্দেশাবলী পরবর্তী অক্ষরটি প্রক্রিয়া করে। চারটি নির্দেশাবলীর প্রক্রিয়া করার পরে বাকী স্ট্রিংটি দেখতে এরকম দেখাচ্ছে:

BCDA
/\/\B/\///
\//\B_\///_\//
\///\\\B/\\C/BCDA
/\/\B/\///
\//\B_\///_\//
\///\\\B/\\D/BCDA
/\/\B/\///
\//\B_\///_\//
\///\\\B/\\

সুতরাং এখন প্রথম আবর্তিত সারিটি মুদ্রিত হবে এবং তারপরে নির্দেশাবলীর পরবর্তী সেট বাকী সারিগুলিকে অন্য কোনও ঘর দ্বারা আবর্তিত করে। শেষ ঘোরাঘুরির পরে, আমাদের আরও কয়েকটি নির্দেশাবলী রয়েছে যা আমরা উপেক্ষা করতে পারি এবং তারপরে আমরা অসম্পূর্ণ নির্দেশের সাথে শেষ করি:

/\\\B/\\

শেষে অসম্পূর্ণ নির্দেশাবলী সহজভাবে উপেক্ষা করা হয় এবং প্রোগ্রামটি সমাপ্ত হয়।


সুন্দর. গতকাল আমি আলাদা ধারণা নিয়ে কিছুটা পরীক্ষা নিরীক্ষা করেছি। আমি প্রতিটি লাইনে প্রতিটি চরিত্রকে প্রতিস্থাপন করতে চেয়েছিলাম। ভালো কিছু A->B, B->C... কিন্তু এটা না বেশ হবে। প্রথম চরটি অপসারণ এবং শেষে এটি যুক্ত করা অবশ্যই আরও অনেক ভাল পদ্ধতির।
জাকুবে

@ জাকুব আমি চেষ্টাও করেছি কিন্তু কোথাও পাচ্ছি না। পরবর্তী নির্দেশাবলীও গোলমাল করা এড়ানো খুব কঠিন।
মার্টিন ইন্ডার

1
124 বাইট: goo.gl/efSLKQ এটি কেবল আপনার সমাধান, তবে আমি কয়েকটি অতিরিক্ত বিকল্প যুক্ত করতে পরিচালিত করেছি, যাতে আপনার কেবল একবার বর্ণমালা লিখতে হবে। একই সমস্যা একই একই কৌশল ব্যবহার।
জাকুব


11

জেলি , 7 বাইট

ØAṙJṢj⁷

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

ØAṙJṢj⁷  Main link. No arguments.

ØA       Set argument and return value to "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
   J     Yield the indices of the argument, i.e., [1, ..., 26].
  ṙ      Rotate the alphabet 1, ..., 26 units to the left.
         This generates all rotations, but not in the correct order.
    Ṣ    Sort the rotated alphabets.
     j⁷  Join, separating by linefeeds.

11

ইমাস, 47 বাইট

abcdefghijklmnopqrstuvwxyz^M
^P
<F3>
^K ^K ^Y ^Y
^P
^<space> ^F ^W ^E ^Y ^A
<F4>
^U 2 4 F4

যেখানে ^P"কন্ট্রোল পি" ইত্যাদির অর্থ এটি 47 বাইট, যেহেতু F3 এবং F4 কী দুটি ASCII বাইট প্রয়োজন require

প্রারম্ভিক ইনপুট প্রবেশ করার পরে, এটি লাইনটি নকল করতে এবং প্রথম অক্ষরটিকে শেষে সরাতে একটি কীবোর্ড ম্যাক্রো সংজ্ঞায়িত করে। এটি পরে আরও 24 বার ম্যাক্রো চালায়।


2
পিপিসিজিতে স্বাগতম, চমৎকার উত্তর! ইমাকস উত্তরটি দেখতে পাওয়া খুব বিরল, আমি জানি না ইতিমধ্যে কোনও ইম্যাক্স উত্তর পোস্ট করা হয়েছে কিনা।
টাকসক্রাফটিং

10

জাভাস্ক্রিপ্ট (ES6), 56 বাইট

_=>"ABCDEFGHIJKLMNOPQRSTUVWXYZ".replace(/./g,"$&$'$`\n")

হ্যাঁ, এটা ঠিক, আমার অর্ধেক কোডটি বর্ণমালার স্ট্রিং আক্ষরিক। আক্ষরিক ছাড়া আমি যা করতে পারি তা 81 বাইট:

_=>[...Array(26)].map((_,i,a)=>a.map(_=>(i++%26+10).toString(36)).join``).join`
`

আপনি যদি কোনও ফাংশন না দিয়ে কোনও প্রোগ্রাম চান তবে 10 টি বাইটের জন্য _=>এটিকে মুছুন এবং console.log()মোড়ক করুন।


ওহ, ভাল হয়েছে। খুব মার্জিত সমাধান। এটা কিভাবে কাজ করে?
Polyducks

2
@ পলি প্রচুর এবং প্রচুর regexp ম্যাজিক পরিচালনা করে। স্বাভাবিকভাবে /./gসরবরাহিত বর্ণমালা স্ট্রিংয়ের প্রতিটি বর্ণের সাথে মেলে। প্রতিস্থাপনের স্ট্রিংয়ে $&ম্যাচটি নিজেই প্রতিনিধিত্ব করে, ম্যাচের $'পরে স্ট্রিংয়ের $`অংশ এবং ম্যাচের আগে স্ট্রিংয়ের অংশ। $`$&$'সুতরাং মূল স্ট্রিং প্রতিনিধিত্ব করবে, তবে অবশ্যই ম্যাচের পরে অংশটি শুরুতে স্থানান্তরিত করা তুচ্ছ, এভাবে ঘূর্ণন প্রভাব সরবরাহ করে।
নীল

সুপার স্মার্ট! ভাল হয়েছে @ নীল!
Polyducks

9

গণিত 6868 বাইট

Column[""<>RotateLeft["A"~CharacterRange~"Z",#]&/@0~Range~25]

ধন্যবাদ...

@ মার্টিনইেন্ডার (7 বাইট)


এছাড়াও, Arrayএকটির উপরে ম্যাপিংটি সংক্ষিপ্ত হতে পারে Range
মার্টিন ইন্ডার

আমি ঠিক পরীক্ষা করেছি এবং Arrayসত্যই একটি বাইট সংরক্ষণ করেছি, তবে আপনি এড়িয়ে অন্যটিকে সংরক্ষণ করতে পারেন Column: Array[{"A"~CharacterRange~"Z"~RotateLeft~#,"\n"}&,26,0]<>""(আপনাকে কেবল \nএকটি আসল লাইনফিড দিয়ে প্রতিস্থাপন করতে হবে )।
মার্টিন ইন্ডার

7
বিল্ট ইন অপেক্ষা না? অসম্ভব
এমসি ΔT

1
Print@@@NestList[RotateLeft,"A"~CharacterRange~"Z",25]
আলেফাল্ফ

Grid@Array[FromCharacterCode[Mod[+##-2,26]+65]&,{26,26}]
গণিত

9

পাইথন 2, 75 65 61 58 বাইট

a='%c'*26%tuple(range(65,91))
for x in a:print a;a=a[1:]+x

এর সাথে বর্ণমালা পায় map(chr,range(65,91)), তারপরে ম্যানুয়ালি স্ট্রিং শিফট অপারেশন প্রয়োগ করে।

-৪ বাইটের জন্য @ লিকইনন এবং @ দ্য বাইকিংভাইককে ধন্যবাদ!

-X বাইটের জন্য @xnor কে ধন্যবাদ!


2
স্পষ্টতই a="ABCDEFGHIJKLMNOPQRSTUVWXYZ"সংক্ষিপ্ত।
লিকি নুন

1
আপনি a[1:]পরিবর্তে করতে পারেন a[1:26]
দ্য বাইকিংভিকিং

2
আপনার লুপ হিসাবে করা যেতে পারে for x in s:print s;s=s[1:]+x
xnor

3
আপনি বর্ণমালা hardcoding একাধিক বাইট খাটো করতে পারেন: s='%c'*26%tuple(range(65,91))
xnor


9

পিট , 247 বাইট / 190 কোডেল

ডায়েটে ট্যাবুলা রেক্টা

অনলাইনে চেষ্টা করে দেখুন!

সুতরাং, এই পর্যন্ত আমার চেয়ে বেশি দিন অপেক্ষিত ছিল নেন, এবং আমি কিছু অন্যান্য আরো দক্ষ (আরও স্ট্যাক বান্ধব) পন্থা উপর কয়েক ধারনা আছে, কিন্তু পরিশেষে আমি Dang কাজ জিনিস পেয়েছেন (এবং একজন দোভাষী বাগ সংশোধন এবং আইডিই বৈশিষ্ট্য যোগ করা বরাবর উপায়), তাই এটি এখানে। সর্বাধিক বাইট-দক্ষ ভাষা, তবে অনেক মজার একটি জাহান্নাম। এখানে একটি বৃহত্তর দর্শন এবং নেওয়া পথটি দেখানো একটি ট্রেস's আমার গিটহাবের ইতিহাস ।

পিটে ট্যাবুলা রেক্টা, বড় সংস্করণ

তাবুল রেক্টা রান ট্রেস

স্ট্যাক-ভিত্তিক ভাষা হিসাবে, এটি সংক্ষেপে ব্যাখ্যা করার জন্য অনেক দূষিত, তবে এখানে বিভিন্ন বিভাগ / লুপগুলি কী করে তার একটি প্রাথমিক ওভারভিউ রয়েছে। সমস্ত ভেরিয়েবল এবং ফাংশন নামগুলি কেবল ব্যাখ্যার জন্য, কারণ পিটে কোনও ভেরিয়েবল বা ফাংশন নেই।

  • ইনিশিয়ালাইজেশন (উপরের-বাম): line_counter27 এ শুরু হয়, '@' লোড হয় cur_letter, letter_count27 এ সেট হয়
  • প্রধান লুপ (গা dark় বেগুনি থেকে শুরু করে কেন্দ্রের শীর্ষে)
    • decrements letter_counter
    • শাখা reset_lineশূন্য হলে (হালকা সায়ান 2-ব্লক)
    • cur_letterস্ট্যাকের শীর্ষে রোলস
    • শাখাগুলি check_doneযদি হয় cur_letter > 'X'(টিল / লাল ব্লক, ডান দিকে)
    • এটি বৃদ্ধি cur_letterএবং আউটপুট দেয় (নীচের ডানদিকে কোণায়)
    • reset_letterযদি শাখাগুলি cur_letter > 'Y'(হালকা সবুজ ব্লক, বাম)
    • রোলস `লেটার_মোহান_কে স্ট্যাকের শীর্ষে ফিরে, লুপের উপরে ফিরে
  • reset_line শাখা (বড় গোলাপী বর্গ):
    • আউটপুটস নিউলাইন চরিত্র
    • রিসেট letter_count27 থেকে
    • মূল লুপের শীর্ষে ফিরে যেতে থাকে
  • check_done শাখা (ডান অর্ধেক ভিতরে)
    • line_counterশীর্ষে রোলস
    • শাখা শূন্য হলে শেষ হবে
    • হ্রাস line_counterএবং নীচে ফিরে রোলস
    • চিঠিটি মুদ্রণ করেই এটি পুনরায় শুরু হয়েছিল
  • reset_line শাখা (বাম দিক, সবুজ ব্লক):
    • পুনরায় সেট করুন cur_letterথেকে '@'
    • এটি যেখানে ছেড়ে গেছে সেখানে পুনরায় সূচনা করে, ঘূর্ণায়মান / লুপের শীর্ষে ফিরে

8

এমএটিএল , 8 বাইট

@ ডেনিসকে ধন্যবাদ জানাতে যিনি পরামর্শ দিয়েছিলেন যে এমএটিএলকে মডিউল ইনডেক্সিং অন্তর্ভুক্ত করা উচিত, এবং @ সুয়েভারকে , যিনি স্বয়ংক্রিয় পেয়ারওয়াইজ অপারেশন সম্পর্কে ধারণা পেয়েছিলেন ।

1Y2t&+Q)

এটি অনলাইন চেষ্টা করুন!

1Y2    % Predefined literal: string 'AB...Z'
t      % Push another copy of it
&+     % 2D array with all pairwise additions of ASCII code points from that string.
       % Gives the 26×26 array [130 131... 155; 131 132... 146; ...; 155 156... 180] 
Q      % Add 1 to each element. First entry is now 131, etc
)      % Index into string 'AB...Z'. Since it has length 26 and MATL uses modular
       % indexing, 131 is the first entry (character 'A'), etc. Implicitly display

8

জাভাস্ক্রিপ্ট, 113 96 91 76 বাইট

কনসোলে চলার জন্য একটি সুপার-শর্ট সংস্করণ:

l="ZABCDEFGHIJKLMNOPQRSTUVWXY";for(C=26;C--;console.log(l=l.slice(1)+l[0]));

জাভাস্ক্রিপ্ট / এইচটিএমএল, 140 123 118 105 বাইট

এইচটিএমএল আউটপুট সহ একটি সুন্দর সংস্করণ, যা ওপির জন্য অনুলিপি এবং আটকানো সহজ করে তোলে:

<script>l="ABCDEFGHIJKLMNOPQRSTUVWXYZ";for(C=26;C--;document.write(l+"<br>"),l=l.slice(1)+l[0]);</script>

(সম্পাদনা: স্ট্রিং এজেড তৈরির পরিবর্তে আমার কেবলমাত্র ব্যবহার করা উচিত ছিল)

(সম্পাদনা 2: তাদের ইনপুট দেওয়ার জন্য @ নীল এবং @ ড্যানথ্যানকে ধন্যবাদ (মন্তব্য দেখুন))


প্রথম সি = 26 অপ্রাসঙ্গিক নয়?
ড্যান

ওহ স্ন্যাপ। দেখে মনে হচ্ছে যে আমি এটি মুছে ফেলার জন্য ভুলে গিয়েছিলাম সংশোধন করা হয়েছে! ধন্যবাদ @ ড্যান দিম্যান :)
পলিয়ডাকস

1
l.slice(0,1)কেবলমাত্র l[0], যখন ,27অপ্রয়োজনীয়, তখন আপনি স্লাইসটি সরিয়ে নিয়ে শেষ করতে পারেন l.slice(1)+l[0]। এছাড়াও আমি মনে করি আপনি console.logএইভাবে পিছন এড়াতে লুপের শরীরে স্থানান্তর করতে পারেন ;
নিল

এখনই এটি পরীক্ষা করে দেখছি, ধন্যবাদ @ নীল! সম্পাদনা: মিষ্টি পবিত্র মোলি। আপনাকে উভয়কেই ধন্যবাদ, আমি আপনাকে মন্তব্যে ক্রেডিটে যুক্ত করব।
Polyducks

1
ওহ, দুর্দান্ত, এটি সহজ করার আরও একটি ভাল উপায় console.log
নিল


8

আর, 47 42 41 বাইট

write(rep(LETTERS,27)[-27*1:26],1,26,,'') 

এটি অনলাইন চেষ্টা করুন!

২ al টি বর্ণমালা তৈরি করে, ২-তম অক্ষর সরিয়ে দেয় এবং ২umns কলামে মুদ্রণ করে।

উন্নতি @ জিউজ্পে এর সমাধান দ্বারা অনুপ্রাণিত



বাহ, আমি ভেবেছিলাম প্রতিটি ইনডেক্সিং ট্রিক ব্যবহার করার চেষ্টা করেছি repতবে এটি বিশেষভাবে অনুপ্রাণিত হয়েছিল! খুব সুন্দর. আমি যদি আবার পারতাম তবে উপভোগ করব।
জিউসেপ

আপনি ব্যবহার করতে পারেন 1পরিবর্তে ""জন্য stdout
জিউসেপে

6

সেসোস , 27 25 বাইট

0000000: 685902 ae7b33 764992 c45d9b 397360 8fef1f 7bca72  hY..{3vI..].9s`...{.r
0000015: 3adc33 07

এটি অনলাইন চেষ্টা করুন! উত্পাদিত এসবিআইএন কোড দেখতে ডিবাগ পরীক্ষা করুন ।

সেসোস সমাবেশ

উপরের বাইনারি ফাইলটি নিম্নলিখিত এসএএসএম কোডটি একত্রিত করে তৈরি করা হয়েছে।

add 26
jmp
    jmp
        rwd 1, add 1, rwd 1, add 1, fwd 2, sub 1
    jnz
    rwd 2, add 64
    jmp
        fwd 2, add 1, rwd 2, sub 1
    jnz
    fwd 1, sub 1
jnz
fwd 1
jmp
    jmp
        put, fwd 1
    jnz
    rwd 27
    jmp
        put, fwd 1
    jnz
    add 10, put, get, fwd 1
    jmp
        rwd 1, add 1, fwd 1, sub 1
    jnz
    fwd 1
; jnz (implicit)

কিভাবে এটা কাজ করে

আমরা টেপটি শুরু করে দিয়ে শুরু করি ABCDEFGHIJKLMNOPQRSTUVWXYZ। এটি নিম্নরূপ।

নিম্নলিখিত অবস্থায় টেপটি রেখে একটি ঘরে 26 টি লিখুন ।

                                                     v
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 0

যতক্ষণ না ডেটা মাথার নীচে ঘর শূন্য হয় না, ততক্ষণ আমরা নিম্নলিখিতটি করি।

বাম দিকে দুটি কক্ষে নম্বরটি অনুলিপি করুন এবং বামদিকের অনুলিপিটিতে 64 যোগ করুন ।

                                                   v
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 26 0 0

বামতমতম অনুলিপিটি মূল স্থানে নিয়ে যান, তারপরে ডানদিকের অনুলিপি থেকে 1 টি বিয়োগ করুন ।

                                                     v
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 90 0

প্রক্রিয়াটি 26 টি পুনরাবৃত্তির পরে বন্ধ হয়ে যায় , যেহেতু ততক্ষণে ডানদিকের অনুলিপি 0 হয়। আমরা একটি কক্ষ ডানে সরিয়ে নিয়েছি, সুতরাং আরম্ভের পরে টেপের চূড়ান্ত অবস্থাটি নিম্নরূপ।

     v
0 0 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

এখন আমরা ডেটা শিরোনামের নীচে ঘর শূন্য না হওয়া পর্যন্ত নিম্নলিখিত প্রক্রিয়াটি পুনরাবৃত্তি করে আউটপুট উত্পন্ন করতে প্রস্তুত।

প্রথমত, আমরা ডেটা শিরোনামের নীচে অক্ষরটি মুদ্রণ করি এবং ডানদিকে চলে যাই, 0 মান সহ একটি ঘর না পাওয়া পর্যন্ত এই পদক্ষেপটি পুনরাবৃত্তি করি । মুদ্রণের পরে ABCDEFGHIJKLMNOPQRSTUVWXYZ, টেপটি নীচে দেখায়।

                                                                                v
0 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

এখন আমরা তথ্য মাথা সরাতে 27 বাম (পেছনে নেতৃস্থানীয় করতে ইউনিট 0 ) এবং সঙ্গে মানটি একটি কক্ষের পর্যন্ত প্রিন্ট পদক্ষেপ সমাহার পুনরাবৃত্তি 0 পাওয়া যায়। এটি কোনও কিছুই প্রিন্ট করে এবং টেপটিকে নীচে ছেড়ে দেয়।

v
0 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

এখন, আমরা বর্তমান কক্ষে 10 লিখি , সংশ্লিষ্ট অক্ষরটি (লাইনফিড) মুদ্রণ করুন এবং getফাঁকা ইনপুটটিতে কল দিয়ে সেলটি শূন্য করব , টেপটি অপরিবর্তিত রেখে।

এরপরে, আমরা ঘরের সামগ্রীটি বর্তমান কক্ষের ডানদিকে সরান, তারপরে ডানদিকে ইউনিটগুলিতে ডেটা হেড স্থানান্তরিত করি।

      v
65 0 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

পরবর্তী পুনরাবৃত্তিটি কিছুটা আলাদা। BCDEFGHIJKLMNOPQRSTUVWXYZনীচে টেপ রেখে প্রথম মুদ্রণ পদক্ষেপ প্রিন্ট করে।

                                                                                v
65 0 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

এখন আমরা ডেটা শিরোনাম 27 ইউনিট বাম দিকে।

 v
65 0 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

পরবর্তী মুদ্রণ লুপটি Aনীচে টেপটি প্রিন্ট করে এবং ছেড়ে দেয়।

   v
65 0 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

আবার, আমরা একটি লাইনফিড মুদ্রণ করি, কক্ষের সামগ্রীটি বর্তমান ঘরে ডানদিকে সরান, তারপরে ডেটা মাথাটি ডানদিকে ইউনিটগুলিতে সরিয়ে নিয়ে যাই।

         v
65 66 0 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

আরও 24 টি পুনরাবৃত্তির পরে , ডেটা মাথাটি ডান দিকে সরানোর চূড়ান্ত পদক্ষেপটি নিম্নলিখিত অবস্থায় টেপটি ছেড়ে দেয়।

                                                                                v
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0 0

ডেটা শিরোনামের নীচে ঘরটি এখন 0 এবং প্রোগ্রামটি সমাপ্ত হয়।


টিআইও সেসোসের একটি নতুন সংস্করণ ব্যবহার করে, যা এসএএসএমের জন্য পিছনের দিকে সামঞ্জস্যপূর্ণ, তবে সংক্ষিপ্ত এসবিআইএন কোড উত্পন্ন করে।


6

হাস্কেল, 56 53 52 বাইট

mapM(\x->putStrLn$init$[x..'Z']++['A'..x])['A'..'Z']

একই দৈর্ঘ্য: (@ অ্যান্ডারস ক্যাসরগের একটি পরামর্শ ব্যবহার করে)

a=['A'..'Z']
mapM putStrLn[take 26$[x..'Z']++a|x<-a]

মডুলার যে জিনিস নিয়ে আপনি Data.Char আমদানি করতে chr, ফাংশন পেতে আছে, কি 74 59 58 বাইট সেরা আমি যে সঙ্গে পেতে পারে ছিল: (ধন্যবাদ toEnum ফাংশন পরামর্শ জন্য @nimi করার জন্য)

a=[0..25]
mapM(\x->putStrLn[toEnum$65+(x+y)`mod`26|y<-a])a

এটি সম্ভবত আরও সংক্ষিপ্ত হতে পারে তবে আমি হাসেল গল্ফ করার কোনও কৌশল জানি না।

mapM_ এর পরিবর্তে mapM ব্যবহৃত হয়েছে (@ লিনের মন্তব্য দেখুন)


1
−3 বাইটের ['A'..x]জন্য ['A'..'Z'], এখন পরিবর্তন করুন যা এখন দুবার ব্যবহৃত হয় এবং এটি একটি সংজ্ঞাতে তুলুন।
অ্যান্ডারস ক্যাসরগ

@ অ্যান্ডারস ক্যাসরগ: ধন্যবাদ! তবে, আমি আরেকটি ধারণা পেয়েছি যা অনেলাইনার রাখার সময় একই সংখ্যক বাইট সংরক্ষণ করেছে। যদিও আমি আপনার পরামর্শটি বিকল্প সমাধানে যুক্ত করেছি।
কার্লকাস্টোর

আপনি শুধুমাত্র প্রয়োজন chrথেকে Data.Char, আপনি ব্যবহার করতে পারেন toEnumপরিবর্তে এবং বর্জন import
নিমি

1
আমি ঠিক mapM_আছে mapMহওয়া উচিত পরিবর্তন মত । হতে পারে এটি একটি মেটা পোস্টের জন্য মূল্যবান ...
লিন



5

ব্রেন-ফ্লাক , 222 বাইট

(((()()()()){})<(((({}){}){}){})>)((((([[]]{}){}()){}))<>()){<>({}<>)<>{({}<(({}()))>[()])}{}<>([({})]<>{})<>(({}<>))<>({}[()])}{}<>(({}<>))<>{}{}{}<>{({}<(({}())[()]<{({}<<>({}<>)>[()])}{}{}((()()()()()){})>)>[()])}{}{}{}

এটি অনলাইন চেষ্টা করুন!

আমি ব্রেইন-ফ্ল্যাচে নতুন, তাই সম্ভবত এটি অনেকটা গল্ফ করা যেতে পারে তবে কমপক্ষে এটি প্রথম চেষ্টা। এটি বাম স্ট্যাকে ২ 27 টি পূর্ণ বর্ণমালা সংরক্ষণ করে, তারপরে বর্ণমালা ডানদিকে নিয়ে যায় এবং প্রতি 27 তম চিঠিকে একটি নতুন লাইন দ্বারা প্রতিস্থাপন করে।

আমার উত্সকোডটি কিছুটা বিভ্রান্তিকর, তবে তবুও আমি এটি যুক্ত করব।

(((()()()()){})
    park 8 in third
    <(((({}){}){}){})> push 64
)
((((([[]]{}){}()){}))<>()) push 26 twice on left and 27 on right
left stack: 64 letter, 26 letter count, 26 constant
right stack: 27 alphabet count
{ while alphabet count
    <>
    ({}<>)<> push 26 back to right
    { while counter
        (
            {} park counter in third
                <(({}()))> add next letter to stack
            [()] decrement counter
        )
    }
    {} pop 0 counter
    <>([({})]<>{}) set Z back to A-1
    <>(({}<>)) move 26 twice from right to left
    <> go to right stack
    ({}[()]) decrement counter
}
{} pop 0
<>(({}<>)) push 26 twice on right stack
<>{}{}{} pop counter, @ and Z from left stack
<> go to right stack
{ while alphabet count
    (
        {} save alphabet count on third stack
        <(
            ({}())[()] save constant on third stack and push lettercount 26 + 1 for lf
            <
                {   while lettercount
                    (
                        {} save lettercount on third stack
                        <
                            <>({}<>) pull letter from left to right
                        > 
                        [()] decrement lettercount
                    )
                }
                {} pop 0
                {} pop last letter
                ((()()()()()){}) push lf
            >
        )>
        [()] decrement alphabet count
    )
}
{}{}{} pop alphabet count, constant and lf

5

ভি , 36 , 10 বাইট

¬AZ25ñÙx$p

এটি অনলাইন চেষ্টা করুন!

এটি "ল্যাটিন 1" এনকোডিং ব্যবহার করে।

ব্যাখ্যা:

¬AZ         " Insert the alphabet
   25ñ      " 25 times...
      Ù     "   Duplicate this line
       x    "   Cut the first character
        $p  "   Move to the end of the line and past the character we just cut

যান এবং এটি যোগ করুন;)
কনর ও'ব্রায়ান

@ সিও'বাʀɪᴇɴ আপনার এখনই জানা উচিত যে এই ভাষায় কিছু করার একমাত্র উপায় হল শামুকের গতি। আমার সম্ভবত এটি হবে এবং আগামী জানুয়ারীর কিছু সময় চলবে। : পি
ডিজেএমসিমেহেম

ওহ, পরের 6-8 সপ্তাহে?
কনর ও'ব্রায়েন

4

সি #, 98 বাইট

আমি চেষ্টা করেছি যে আমি অক্ষরগুলি কেবল একটি স্ট্রিং হিসাবে আরম্ভ করার চেয়ে আরও কম অক্ষরগুলি তৈরি করতে পারি কিনা, তবে এটি সত্যিই সম্ভব নয়। চিঠিগুলি 26 বাইট এবং এই স্নিপেট একা

for(char a='A';a<'[';a++)

25 বাইট হয়। আমি মনে করি সেগুলি আরম্ভ করে এবং তারপরে তাদেরকে + = a দিয়ে সংযুক্ত করা ভাল সমাধান, তবে সি # এর সাথে আপনি Substring()এবং এর মতো ক্রিয়াকলাপের বাইকউন্ট দ্বারা সীমাবদ্ধ Console.WriteLine()

98 বাইটে আমার প্রচেষ্টা:

var a="ABCDEFGHIJKLMNOPQRSTUVWXYZ";a+=a;for(int i=0;i<26;i++)Console.WriteLine(a.Substring(i,26));

4

অক্টাভা, 27 বাইট

আমরা একটি সারি এবং একটি কলাম ভেক্টর যুক্ত করছি এবং অষ্টাভ সুন্দরভাবে সিগলেটনের মাত্রা প্রসারিত করে, আপনার কোনও প্রয়োজন নেই bsxfun(যেমন মতলবতে আপনার প্রয়োজন হবে)।

[mod((v=0:25)+v',26)+65,'']


4

জাভা, 190 176 172 163 বাইট

class C{public static void main(String[] a){int s=0;while(s<26){p(s,26);p(0,s++);p(-1,0);}}static void p(int s,int e){for(;s<e;s++)System.out.write(s<0?10:65+s);}}

আপনি আরও কয়েকটি বাইট সহজেই শেভ করতে পারেন: System.out.printf("%c", ...)-> System.out.write(...), '\n'-> 10, 'A'-> 65। নিশ্চিত করুন যে নতুনলাইন / লাইন ফিড চর প্রস্তাবটি অনুমোদিত, তবে আদর্শ আউটপুট প্রয়োজন। :)
এমএইচ।

@MH। দুর্দান্ত টিপস! 9 টি বাইট সংরক্ষণ করা হয়েছে :)
মাস্টার_েক্স

আমি জানি যে আপনি এটির উত্তর দেওয়ার পরে এক বছরেরও বেশি সময় হয়েছে, তবে আপনি এখনও কয়েকটি বিষয় গল্ফ করতে পারেন: স্থানটি String[]aসরিয়ে নেওয়া যেতে পারে; এবং int s=0;while(s<26){p(s,26);p(0,s++);p(-1,0);}হতে পারে for(int s=0;s<26;p(0,s++),p(0,s++))p(s,26);
কেভিন ক্রুইজসেন

4

বাশ, 66 বাইট

A=`printf %c {A..Z}`
for i in {0..25};do echo ${A:$i}${A::$i};done

আমি একটি সম্পূর্ণ বর্ণমালা তৈরি করি A, তারপরে অক্ষরগুলি শুরু করে nএবং পূর্ববর্তী অবস্থানগুলি যুক্ত করে এর 26 টি ঘূর্ণিত সংস্করণ মুদ্রণ করি n


4

পার্ল, 42 বাইট

এর জন্য @ ডোম হেস্টিংসকে সম্পূর্ণ ক্রেডিট।

@l=A..Z;say@l[$_..25],@l[0..$_-1]for 0..25  

বা (একই বাইট গণনা):

$_=join"",A..Z;eval'say;/./;$_=$\'.$&;'x26

প্রয়োজন -M5.010বা -Eচালানো, উদাহরণস্বরূপ:

perl -E '@l=A..Z;say@l[$_..25],@l[0..$_-1]for 0..25'



আমার পুরানো উত্তর (55 বাইট):

@t=A..Z;for$i(0..25){print$t[($_+$i)%26]for 0..25;say}

-M5.010চালানো দরকার । তাই দিয়ে চালান:

perl -M5.010 -e '@t=A..Z;for$i(0..25){print$t[($_+$i)%26]for 0..25;say}'  

যদিও এটি আরও ছোট করা সম্ভব, তবে কীভাবে ... এখনও তা আমি খুঁজে পেলাম না


42 বাইট সমাধানের দু'টি নিয়ে আসতে পরিচালিত: @l=A..Z;say@l[$_..25],@l[0..$_-1]for 0..25এবং $_=join"",A..Z;eval'say;/./;$_=$\'.$&;'x26উভয়েরই প্রয়োজন -E/ -M5.010
ডম হেস্টিংস

সুন্দরভাবে সম্পন্ন. আমার চেষ্টা চেয়ে অনেক ভাল দেখাচ্ছে! ধন্যবাদ
দাদা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.