মেক্সিকান ওয়েভ তৈরি করুন


64

যতটা সম্ভব বাইটে একটি প্রোগ্রাম বা ফাংশন লিখুন যা নিম্নলিখিতগুলির তুলনায় ফলাফল দেয়:

Abcdefghijklmnopqrstuvwxyz
aBcdefghijklmnopqrstuvwxyz
abCdefghijklmnopqrstuvwxyz
abcDefghijklmnopqrstuvwxyz
abcdEfghijklmnopqrstuvwxyz
abcdeFghijklmnopqrstuvwxyz
abcdefGhijklmnopqrstuvwxyz
abcdefgHijklmnopqrstuvwxyz
abcdefghIjklmnopqrstuvwxyz
abcdefghiJklmnopqrstuvwxyz
abcdefghijKlmnopqrstuvwxyz
abcdefghijkLmnopqrstuvwxyz
abcdefghijklMnopqrstuvwxyz
abcdefghijklmNopqrstuvwxyz
abcdefghijklmnOpqrstuvwxyz
abcdefghijklmnoPqrstuvwxyz
abcdefghijklmnopQrstuvwxyz
abcdefghijklmnopqRstuvwxyz
abcdefghijklmnopqrStuvwxyz
abcdefghijklmnopqrsTuvwxyz
abcdefghijklmnopqrstUvwxyz
abcdefghijklmnopqrstuVwxyz
abcdefghijklmnopqrstuvWxyz
abcdefghijklmnopqrstuvwXyz
abcdefghijklmnopqrstuvwxYz
abcdefghijklmnopqrstuvwxyZ
abcdefghijklmnopqrstuvwxYz
abcdefghijklmnopqrstuvwXyz
abcdefghijklmnopqrstuvWxyz
abcdefghijklmnopqrstuVwxyz
abcdefghijklmnopqrstUvwxyz
abcdefghijklmnopqrsTuvwxyz
abcdefghijklmnopqrStuvwxyz
abcdefghijklmnopqRstuvwxyz
abcdefghijklmnopQrstuvwxyz
abcdefghijklmnoPqrstuvwxyz
abcdefghijklmnOpqrstuvwxyz
abcdefghijklmNopqrstuvwxyz
abcdefghijklMnopqrstuvwxyz
abcdefghijkLmnopqrstuvwxyz
abcdefghijKlmnopqrstuvwxyz
abcdefghiJklmnopqrstuvwxyz
abcdefghIjklmnopqrstuvwxyz
abcdefgHijklmnopqrstuvwxyz
abcdefGhijklmnopqrstuvwxyz
abcdeFghijklmnopqrstuvwxyz
abcdEfghijklmnopqrstuvwxyz
abcDefghijklmnopqrstuvwxyz
abCdefghijklmnopqrstuvwxyz
aBcdefghijklmnopqrstuvwxyz
Abcdefghijklmnopqrstuvwxyz

একটি ট্রেলিং নিউলাইন অনুমোদিত। আপনি একটি রেফারেন্স ungolfed পাইথন বাস্তবায়ন জানতে পারেন এখানে


1
ইনপুটটি কখনই আপার ক্ষেত্রে হয় না তা নিরাপদ?
উইনি

40
@ উইনি কোনও ইনপুট নেই। আউটপুট স্থির হয়। আসলে, এটি কলমোগোরভ-জটিলতার প্রশ্নগুলির সাধারণ ধারণা ।
ক্রিস জেস্টার-ইয়াং

আপনি এটি পোস্ট করার পরে এটি ধারাবাহিকভাবে এইচএনকিউ তালিকায় রয়েছে। চমৎকার কাজ. :)
অ্যালেক্স এ।

1
আপনি এখানে একটি নিরবচ্ছিন্ন পাইথন বাস্তবায়ন পেতে পারেন implementation -> লিঙ্কটি ভাঙা
ফ্রাঙ্ক ডারনকোর্ট

ফ্রাঙ্ক ডারননকোর্টের বক্তব্য এখনও দাঁড়িয়ে আছে। লিঙ্কটি নষ্ট হয়ে গেছে।
জোনাথন ফ্র্যাচ

উত্তর:


64

পাইথ, 12 বাইট

V+Gt_GXGNrN1

প্রদর্শন.

পাইথ-এ, Gছোট হাতের বর্ণমালা। +Gt_Gএটি হল abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba, প্রতিটি সারিতে বড় অক্ষর হওয়া দরকার character

VNলুপ ভেরিয়েবল হিসাবে এই স্ট্রিং উপর লুপ জন্য একটি সেট আপ ।

শরীরে, XGNrN1একটি স্ট্রিং অনুবাদ ফাংশন। Xঅনুবাদ G, বর্ণমালা, প্রতিস্থাপন Nসঙ্গে rN1, এর বড় হাতের সংস্করণ Nr ... 1বড় হাতের কাজ এটি পছন্দসই আউটপুট দেয়।


31
আমি কি কেবলমাত্র এই মজার বিষয়টি খুঁজে পেলাম যে ছোট হাতের বর্ণমালা একটি বড় হাতের অক্ষর দ্বারা প্রতিনিধিত্ব করে?
অ্যালেক্স এ 16

31

সি, 73

কখনও কখনও সহজ পদ্ধতির সেরা: প্রতিটি অক্ষর এক এক করে মুদ্রণ করুন। এটি সত্যিকারের উচিত নয় এমন অনেকগুলি ভাষা মারধর করে।

i;f(){for(i=1377;i--;)putchar(i%27?123-i%27-32*!(i/702?i%28-4:i%26):10);}

ব্যাখ্যা

i;f(){
   for(i=1377;i--;)
   putchar(i%27?                 //if I not divisible by 27
     123-i%27-                   //  print lowercase letter from ASCII 122 downards
       32*!(i/702?i%28-4:i%26)   //  subtract 32 to make it uppercase where necessary: above i=702, use i%28-4, below it use i%26
     :10);                       //if I divisible by 27 print a newline (10)
}


20

ব্রেইনফাক (8 বিট), 231 বাইট

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

ঠিক আছে, সুতরাং এটি কখনই সংক্ষিপ্ততম হতে চলেছে না, তবে এটি অংশ নেওয়ার বিষয়টি গণনা করে ... ঠিক ?!

এখানে চেষ্টা করে দেখুন ('ডায়নামিক মেমোরি' টিক চিহ্ন নিশ্চিত করুন)


5
যদি লক্ষ্যটি হ'ল দীর্ঘতম সম্ভব কোড যা এখনও সাধারণ মানব প্রোগ্রামারের কাছে পুরোপুরি অনির্বচনীয় ...
কালেব

7
@ কালেব আমি মনে করি বিএফ কোডটি অস্তিত্বের মধ্যে বোঝার জন্য সবচেয়ে সহজ কোড। এটি প্রোগ্রাম / কার্যকারিতা যা বোঝা শক্ত। প্রত্যেকেরই জানা উচিত যে >উদাহরণস্বরূপ, একটি কক্ষ ডানে স্থানান্তরিত করে।
mbomb007

4
সর্বদা বিএফ উত্তরগুলি ভালবাসতে পেল;)
রেডপান্ডা

আপনি এই কোডটি সরাসরি লিখেন নি এখন আপনি কি করেছেন?
বার

6
আমি লজ্জা পেয়ে বললাম!
জারমেক্স

13

এমএস-ডস বাইনারি, 61

এই কোডটি সংকলন করতে হবে না, আপনি ওয়েভ ডটকম নামে একটি ফাইলটিতে লিখলে এটি এমএস-ডস-এ চলবে। হেক্সে কোড:

ba3d0189d7b91a00b061aa404975fbb00aaab00daab024aa31f6e8130046
83fe1a75f7be1800e807004e75fae80100c389d3802820b409cd21800020
c3

অথবা, আপনি যদি আরও কিছু পাঠযোগ্য prefer

debug.exe wave.com
a
mov dx,13d
mov di,dx
mov cx,1a
mov al,61
stosb
inc ax
dec cx
jnz 10a
mov al,a
stosb
mov al,d
stosb
mov al,24
stosb
xor si,si
call 130
inc si
cmp si,1a
jnz 11a
mov si,18
call 130
dec si
jnz 126
call 130
ret
mov bx,dx
sub byte ptr [si+bx],20
mov ah,9
int 21
add byte ptr [si+bx],20
ret

rcx
3e
w
q

11

রুবি: 71 68 65 63 টি অক্ষর

puts f=(e=*?a..?z).map{|c|(e*"").tr c,c.upcase},f[0,25].reverse

নমুনা রান:

bash-4.3$ ruby -e 'puts f=(e=*?a..?z).map{|c|(e*"").tr c,c.upcase},f[0,25].reverse' | head
Abcdefghijklmnopqrstuvwxyz
aBcdefghijklmnopqrstuvwxyz
abCdefghijklmnopqrstuvwxyz
abcDefghijklmnopqrstuvwxyz
abcdEfghijklmnopqrstuvwxyz
abcdeFghijklmnopqrstuvwxyz
abcdefGhijklmnopqrstuvwxyz
abcdefgHijklmnopqrstuvwxyz
abcdefghIjklmnopqrstuvwxyz
abcdefghiJklmnopqrstuvwxyz

1
63:puts f=(e=*?a..?z).map{|c|(e*"").tr c,c.upcase},f[0,25].reverse
ভেন্টোরো

ডোহ। ই এর পুনঃব্যবহারের অনুকূলকরণের জন্য আমি কয়েকজন বোবা ধারণা চেষ্টা করেছি, তবে অবশ্যই সঠিক উপায় নয়। ধন্যবাদ, ভেন্টোরো।
manatwork

10

মতলব, 60 58 54 বাইট

I=32*eye(26);[ones(51,1)*(97:122) '']-[I;I(25:-1:1,:)])

আমাকে 4 বাইট বাঁচানোর জন্য ডেনিস জাহেরউদ্দিনকে ধন্যবাদ জানাই


এখানে আপনি আরো প্রতিস্থাপন টিপিক্যাল কৌতুক ব্যবহার করতে পারেন char(x)দ্বারা [x '']একটি বাইট সংরক্ষণ করুন।
ডেনিস জাহেরউদ্দিন

এছাড়াও end-125 লিখার একটি বরং ভার্ভোজ উপায়!
ডেনিস জাহেরউদ্দিন

@ ডেনিসজাহেরউদ্দীন উফস উভয়ের জন্য ধন্যবাদ! আসলে [x '']কৌশলটি আমার পক্ষে মোটেও স্বাভাবিক নয়। তবে এখন আমার মনে আছে এটি আপনার কোনও একটিতে দেখেছি :-)
লুইস মেন্ডো

8

এসডাব্লুআই-প্রোলগ, 136 বাইট

a:-(R=0;R=1),between(1,26,I),(I=1,R=0;I\=1,nl),between(1,26,J),(R=0,L=I;R=1,L is 27-I),(J=L,K is J+64,put(K);J\=L,K is J+96,put(K)),\+!.

লুপ থেকে ব্যাকট্র্যাকিং আপত্তিজনক ...


8

হাস্কেল 100 89 88 বাইট

putStr$map toEnum.(\(h,c:t)->h++c-32:t++[10]).(`splitAt`[97..122]).(25-).abs=<<[-25..25]

ল্যাম্বদা হেল্পার ফাংশনটি \(h,c:t)এসকিআই মানগুলির তালিকার এক জোড়া নেয় এবং উভয়কেই সম্মতি দেয়, তবে দ্বিতীয় তালিকার প্রথম মানটিকে মূলধন করে। প্রধান ফাংশনটি 97..122প্রতিটি অবস্থানে ছোট হাতের বর্ণমালা (ascii এ দেওয়া ) বিভক্ত করে 0,..,24,25,24,..,0এবং প্রতিটি পদক্ষেপে ল্যাম্বডাকে ডাকে। মুদ্রণের আগে প্রতিটি মানটিকে সংশ্লিষ্ট চরিত্রে রূপান্তরিত করা হয়।


এখানে আমার পদ্ধতির: কোড golf.stackexchange.com/a/53895/3852
লিন

8

স্কেল 110 109 টি অক্ষর

val a=('a'to'z').map(c⇒('a'to'z').map(v⇒if(v==c)c.toUpper else v).mkString)
a++a.init.reverse foreach println

5
ওএমজি স্কালায় প্রতীক ব্যবহার করা হয়? মানে না => তবে ⇒ ???
shabunc

2
উভয়ই বৈধ :)
গিলাদ হচ

আমি যদি পরিবর্তন করি তবে 1 বাইট মুণ্ডন করতে foreach printlnপারে mkString("\n"), এবং স্ক্রিনে প্রিন্ট করার পরিবর্তে একটি স্ট্রিং রিটার্ন মান হিসাবে আউটপুট করতে পারে
gilad hoch

7

এসকিউএল (পোস্টগ্রিএসকিউএল), 107 101

-25 থেকে 25 অবধি সিরিজ তৈরি করুন এবং তাদের বড় হাতের সংস্করণ দিয়ে অক্ষরগুলি প্রতিস্থাপন করতে পরম মানটি ব্যবহার করুন। @ অপারেটর সম্পর্কে টিপটির জন্য মানটওয়ার্ককে ধন্যবাদ।

select replace('abcdefghijklmnopqrstuvwxyz',chr(122- @i),chr(90- @i))from generate_series(-25,25)a(i)

আপনি জানেন যে PostgreSQL এর @অপারেটর আছে?
ম্যান্যাটওয়ার্ক

@ মান্যাটওয়ার্ক নাহ আমি তা জানতাম না, তবে এখন আমি ধন্যবাদ
জানাচ্ছি

7

হাস্কেল, ৮১ বাইট

@ নিমিমি যেভাবে বাইটগুলি গণনা করছে; fহ'ল একটি আইও ক্রিয়া যা পছন্দসই আউটপুট প্রিন্ট করে।

x!y|x==min(50-y)y=65|0<1=97
f=mapM putStrLn[[toEnum$x+x!y|x<-[0..25]]|y<-[0..50]]

খুবই ভদ্র. রক্ষীরা ইনলাইন ব্যবহার করতে পারে তা জানতেন না।
ব্যবহারকারী 2845840


6

ম্যাটল্যাব - 58 বাইট

char(bsxfun(@minus,97:122,32*[eye(25,26);rot90(eye(26))]))

অনুরূপ লুইস Mendo এর সমাধান কিন্তু এর সম্প্রচার ক্ষমতা ব্যবহার bsxfun

ASCII তে, বড় বড় এবং ছোট ছোট অক্ষরের পার্থক্য একে অপরের থেকে ঠিক 32 মান দূরে, আমরা প্রথমে ASCII কোডগুলি 97 থেকে 122 এর মধ্যে ছোট ছোট অক্ষর তৈরি করি যা ছোট হাতের অক্ষর থেকে নিম্নের জে পর্যন্ত ASCII কোড হয়, তারপরে একটি 51 সারি ম্যাট্রিক্স যে 97 থেকে 122. অতএব, এই ম্যাট্রিক্সের প্রতিটি সারির 97 থেকে 122. পরবর্তী মূল্যবোধের একটি সংখ্যাসূচক ক্রম ধারণ করে 26 ASCII কোড ধারণ করে তৈরি, আমরা অন্য ম্যাট্রিক্স যেখানে প্রতিটি আমি সৃষ্টি করি একটি রয়েছে এই ম্যাট্রিক্সের সারি I কলামে 32 । এই ম্যাট্রিক্সের প্রথম 26 টি সারিতে এই প্যাটার্নটি রয়েছে যা মূলত পরিচয় ম্যাট্রিক্স 32 দ্বারা গুণিত হয় Theeyeআপনার জন্য একটি পরিচয় ম্যাট্রিক্স তৈরি করে। এই ম্যাট্রিক্সের সর্বশেষ 25 টি সারি হ'ল 90 ডিগ্রি ঘোরানো মাপের পরিচয় mat

এই স্বনির্ধারিত ওজনযুক্ত পরিচয় ম্যাট্রিক্স গ্রহণ করে এবং এটি প্রথম ম্যাট্রিক্স দিয়ে বিয়োগ করে, তারপরে ফলাফল প্রাপ্ত ASCII কোডগুলিকে অক্ষরগুলিতে রূপান্তরিত করে কাঙ্ক্ষিত "মেক্সিকান হাট" ক্রম তৈরি করা হয় produced

উদাহরণ রান

>> char(bsxfun(@minus,97:122,32*[eye(25,26);rot90(eye(26))]))

ans =

Abcdefghijklmnopqrstuvwxyz
aBcdefghijklmnopqrstuvwxyz
abCdefghijklmnopqrstuvwxyz
abcDefghijklmnopqrstuvwxyz
abcdEfghijklmnopqrstuvwxyz
abcdeFghijklmnopqrstuvwxyz
abcdefGhijklmnopqrstuvwxyz
abcdefgHijklmnopqrstuvwxyz
abcdefghIjklmnopqrstuvwxyz
abcdefghiJklmnopqrstuvwxyz
abcdefghijKlmnopqrstuvwxyz
abcdefghijkLmnopqrstuvwxyz
abcdefghijklMnopqrstuvwxyz
abcdefghijklmNopqrstuvwxyz
abcdefghijklmnOpqrstuvwxyz
abcdefghijklmnoPqrstuvwxyz
abcdefghijklmnopQrstuvwxyz
abcdefghijklmnopqRstuvwxyz
abcdefghijklmnopqrStuvwxyz
abcdefghijklmnopqrsTuvwxyz
abcdefghijklmnopqrstUvwxyz
abcdefghijklmnopqrstuVwxyz
abcdefghijklmnopqrstuvWxyz
abcdefghijklmnopqrstuvwXyz
abcdefghijklmnopqrstuvwxYz
abcdefghijklmnopqrstuvwxyZ
abcdefghijklmnopqrstuvwxYz
abcdefghijklmnopqrstuvwXyz
abcdefghijklmnopqrstuvWxyz
abcdefghijklmnopqrstuVwxyz
abcdefghijklmnopqrstUvwxyz
abcdefghijklmnopqrsTuvwxyz
abcdefghijklmnopqrStuvwxyz
abcdefghijklmnopqRstuvwxyz
abcdefghijklmnopQrstuvwxyz
abcdefghijklmnoPqrstuvwxyz
abcdefghijklmnOpqrstuvwxyz
abcdefghijklmNopqrstuvwxyz
abcdefghijklMnopqrstuvwxyz
abcdefghijkLmnopqrstuvwxyz
abcdefghijKlmnopqrstuvwxyz
abcdefghiJklmnopqrstuvwxyz
abcdefghIjklmnopqrstuvwxyz
abcdefgHijklmnopqrstuvwxyz
abcdefGhijklmnopqrstuvwxyz
abcdeFghijklmnopqrstuvwxyz
abcdEfghijklmnopqrstuvwxyz
abcDefghijklmnopqrstuvwxyz
abCdefghijklmnopqrstuvwxyz
aBcdefghijklmnopqrstuvwxyz
Abcdefghijklmnopqrstuvwxyz

আপনি IDEone এর অনলাইন অষ্টাভ পরিবেশ ব্যবহার করে এই উদাহরণটি চালাতে পারেন। অষ্টাভে মূলত ম্যাটল্যাব তবে বিনামূল্যে: http://ideone.com/PknMe0


1
rot90-- ভাল চিন্তা!
লুইস মেন্ডো

চর (বেশী (26,1) * [97: 122] -eye (26) * 32)
ব্যবহারকারী 3528438

@ ইউজার 3528438 আপনি দ্বিতীয়ার্ধটি কীভাবে পরিচালনা করবেন? কোডটি কেবল তরঙ্গের প্রথমার্ধের গণনা করে। আপনার বাকী গণনা করা দরকার।
রাইরিং

@ ইউজার 3528438 - এছাড়াও নোট করুন যে আপনি যা লিখেছেন তা মূলত লুই লেন্ডোর উত্তরটির প্রথম অর্ধেক। একই জিনিসটি অর্জনের জন্য আমি কিছুটা আলাদা লেখার সিদ্ধান্ত নিয়েছি :)
রায়রেং

@ রাইরিং হ্যাঁ, এটি আমার জন্য আশ্চর্য হয়ে যায় যে দ্বিতীয়ার্ধটি পরিচালনা করা আরও শক্ত, এবং কীভাবে কেন্দ্রের সদৃশটি এড়ানো যায়।
ব্যবহারকারী 3528438

5

জে, 31 23 বাইট

u:|:(97+i.26)-32*=|i:25

8 বাইট সংরক্ষণ করেছেন @ মরিসকে ধন্যবাদ।

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


আমি 23 পেয়েছি: u:|:(97+i.26)-32*=|i:25( =এখানে monad সত্যিই দরকারী!)
লিন

@ মরিস ধন্যবাদ, আমি এখানে মোনাদ ব্যবহার করার কথা ভাবি নি =। এটা খুব সুন্দর!
এলোমেলো

5

পার্ল, 51 বাইট

50 বাইট কোড + 1 বাইট কমান্ড লাইন প্যারামিটার

@a=a..z,@a[-1-abs]=uc@a[-1-abs],print@a for-25..25

নিম্নলিখিত হিসাবে ব্যবহার করা যেতে পারে:

perl -le '@a=a..z,@a[-1-abs]=uc@a[-1-abs],print@a for-25..25'

অথবা এখানে অনলাইনে (দ্রষ্টব্য আমি এতে যোগ ,"\n"করতে হয়েছিল কারণ আমি -l আরগটি যুক্ত করতে পারি নি)।


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

86 বাইট কোড + 1 বাইট কমান্ড লাইন টিপুন

$_=join"",0,a..z,1;print s/1//r while s/(([A-Z])|0)(\D)|(.)((?2))(1)/\L\2\U\3\4\6\L\5/

প্রথম পার্ল আমি কখনই সঠিকভাবে গল্ফ করেছি তাই আমি কল্পনা করেছি যে এটির মাধ্যমে অনেক কিছু করা যায় - দয়া করে উন্নতির পরামর্শ দিন!

নিম্নলিখিত হিসাবে ব্যবহার করা যেতে পারে:

perl -le '$_=join"",0,a..z,1;print s/1//r while s/(([A-Z])|0)(\D)|(.)((?2))(1)/\L\2\U\3\4\6\L\5/'

অথবা অনলাইনে এখানে (নোট করুন আমাকে যোগ করতে হয়েছিল "\ n" কারণ আমি -l আরগ যোগ করতে পারিনি)।

ব্যাখ্যা

সাধারণ পদ্ধতিটি হ'ল সমস্ত কঠোর পরিশ্রম করার জন্য রেজেক্স বিকল্প ব্যবহার করা। আমরা এর সাথে শুরু করি:

0abcdefghijklmnopqrstuvwxyz1

এই মেলে (([A-Z])|0)(\D)এবং \U\3(pp U বড় হাতের অক্ষরে রূপান্তরিত হয়) দিয়ে প্রতিস্থাপন হয় :

Abcdefghijklmnopqrstuvwxyz1

এই জায়গা থেকে, আমরা একই রেজেক্সের সাথে ম্যাচ চালিয়ে যাচ্ছি এবং এর সাথে প্রতিস্থাপন করব \L\2\U\3:

aBcdefghijklmnopqrstuvwxyz1
abCdefghijklmnopqrstuvwxyz1
...
abcdefghijklmnopqrstuvwxyZ1

এখন রেজেক্সের দ্বিতীয় বিকল্পটি মিলছে, (.)((?2))(1)(যা একই রকম (.)([A-Z])(1))। আমরা \U\4\6\L\5দিতে প্রতিস্থাপন :

abcdefghijklmnopqrstuvwxY1z

এটি পৌঁছানোর আগ পর্যন্ত এটি মিলছে এবং প্রতিস্থাপন করতে থাকবে:

A1bcdefghijklmnopqrstuvwxyz

এবং আর কোন রেগেক্স ম্যাচ নেই।

লুপের প্রতিটি বিন্দুতে আমরা '1' সরিয়ে প্রিন্ট করি।


5

পিএইচপি, 87 71 69 বাইট

সংক্ষিপ্ততম নয়, তবে এটি উদ্দেশ্য হিসাবে কাজ করে। এটির আকারটি অনেকটা কমাতে কয়েকটি টিপসের জন্য @ মান্যাটওয়ার্ককে
ধন্যবাদ । এবং ব্ল্যাকহোলকে ধন্যবাদ, আকারটি 2 বাইট দ্বারা হ্রাস পেয়েছে

for(;$L=range(a,z),$L[25-abs($i++-25)]^=' ',$i<52;)echo join($L).'
';

ঠিক সুন্দর নয়, তবে কাজ করে।


1
"একটি খালি স্ট্রিংয়ে ডিফল্টকে আঠালো করুন” "- join()প্রথম পরামিতি সম্পর্কে পিএইচপি ডকুমেন্টেশন ।
ম্যান্যাটওয়ার্ক

1
: তা স্ট্রিং সাবস্ক্রিপ্ট সত্যিই অনুকূল নয় $i<25?$i:25-($i-25)25-abs($i-25)
manatwork

1
প্রদত্ত যে আপনি ইতিমধ্যে সতর্কতাগুলি উপেক্ষা করছেন (অপরিজ্ঞাত স্থির ক এবং z এর জন্য), আপনি অবিজ্ঞাপনের জন্য অন্য একটিটিকে উপেক্ষা করতে পারেন $ i। Touch i স্পর্শ করার সময়, এর বৃদ্ধিটি স্ট্রিং সাবস্ক্রিপ্টে সরান। for(;$i<51;){$L=range(a,z);$L[25-abs($i++-25)]^=" ";echo join($L),"↵";}(
কোডটিতে

@ মান্যাট ওয়ার্ক অনেক ধন্যবাদ! আমি পুরোপুরি ভুলে গিয়েছিলাম যে সেখানে \nছিল। এর সূচনাটি $iদুর্ঘটনা হিসাবে ছেড়ে গেছে। এবং আপনাকে অনেক ধন্যবাদ 25-abs($i-25)। আমি নিজেই সেখানে যাব না।
ইসমাইল মিগুয়েল

2
আপনার forলুপটি অনুকূলিত করা যায়: for(;$L=range(a,z),$L[25-abs($i++-25)]^=' ',$i<52;)echo join($L).'↵';(-২ বাইট)।
ব্ল্যাকহোল


5

টিআইএস নোড প্রকার টি 21 আর্কিটেকচার - 216 215 বাইট

এখানে এটি কর্মে দেখুন! DOWNসেই ভিডিওতে একটি রয়েছে যা আমি পরে গল্ফ করেছিলাম ANYতবে এটি কার্যত অভিন্ন।

এই ভাষায় স্ট্রিং বা চরিত্রের কোনও ধারণা নেই, সুতরাং আমার উল্লেখ করা উচিত যে আমি ASCII মানগুলি ব্যবহার করছি, অর্থাৎ আউটপুট শুরু হয় 97, 66, 67... 88, 89, 90, 10, 65, 98...

স্কোর করার উদ্দেশ্যে টিআইএস -100 এর সংরক্ষণের ডেটা ফর্ম্যাটে কোডটি এখানে:

@5
ADD 25
L:MOV 27 ANY
SUB 1
JGZ L
MOV 25 ANY
JRO -1
@6
JRO 2
S:MOV 10 ANY
ADD 65
MOV ACC ANY
SUB 90
JEZ S
ADD 26
@9
MOV 32 ANY
ADD UP
L:MOV 0 ANY
SUB 1
JGZ L
@10
MOV UP ACC
ADD ANY
SUB 42
D:JEZ D
ADD 42
MOV ACC ANY

ব্যাখ্যা


এটি টিআইএস -100-এ প্রথম প্রশ্ন বা কী?
noɥʇʎԀʎzɐɹƆ

1
আমি টিআইওর জন্য একটি টিআইএস এমুলেটর কার্যকর করেছি, তাই আপনি এখন অনলাইনে চেষ্টা
Phlarx

4

জাভাস্ক্রিপ্ট ES6, 121 বাইট

_=>Array(51).fill('abcdefghijklmnopqrstuvwxyz').map((e,i)=>e.replace(/./g,(f,j)=>j==i|i+j==50?f.toUpperCase():f)).join`
`

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

f=function(){
  return Array(51).fill('abcdefghijklmnopqrstuvwxyz').map(function(e,i){
    return e.replace(/./g,function(f,j){
      return j==i|i+j==50?f.toUpperCase():f
    })
  }).join('\n')
}

// Polyfill for ES6-only fill()
Array.prototype.fill = Array.prototype.fill || function(val){
  for(i=0;i<this.length;i++){
    this[i] = val
  }
  return this
}

document.getElementById('p').innerText=f()
<pre id="p"></pre>


4

সিজেম, 23 বাইট

51{25-z~'{,97>'[2$+tN}/

সিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন ।

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

51{                  }/ e# For I from 0 to 50:
   25-                  e#   Compute J := I - 25.
                        e#   This maps [0 ... 50] to [-25 ... 25].
      z                 e#   Compute K := abs(J).
                        e#   This maps [-25 ... 25] to [25 ... 0 ... 25].
       ~                e#   Compute L := ~K = -(K + 1).
                        e#   This maps [25 ... 0 ... 25] to [-26 ... -1 ... -26].
        '{,             e#   Push ['\0' ... 'z'].
           97>          e#   Discard the first 97. Pushes ['a' ... 'z'].
              '[2$+     e#   Add L to '['. Pushes 'A' for -26, 'Z' for -1.
                   t    e#   Set ['a' ... 'z'][L] to '[' + L.
                    N   e#   Push a linefeed.

4

আর, 78 70

M=replicate(26,c(letters,"\n"));diag(M)=LETTERS;cat(M,M[,25:1],sep="")

@ মিকিটি দ্বারা উন্নত


2
প্রায় একইরকম আমি এক সাথে এসেছি কিন্তু একদিকে রেখেছি। আমি M=replicate(26,c(letters,"\n"))বরং ম্যাট্রিক্স ব্যবহার করেছি । এটি আপনাকে কয়েকটি বাইট সংরক্ষণ করবে
মিকিটি

1 বাইট ব্যবহার করে সংরক্ষণ করুন write: tio.run/##K/r/…
জয়সি

4

লিনাক্স অ্যাসেম্বলি, 289

দুর্ভাগ্যক্রমে উচ্চ স্তরের ভাষার সাথে প্রতিযোগিতামূলক নয় এবং সম্ভবত সর্বোত্তম থেকে অনেক দূরে, তবে বেশ সোজা। এটি ব্যবহার করে চালান nasm -f elf64 -o a.o wave.S; ld -s -o a a.o; ./a(ফলস্বরূপ বাইনারি কেবল 568 বাইট বড়):

section .data
s:db 'abcdefghijklmnopqrstuvwxyz',10
section .text
global _start
_start:
mov esi,0
a:call c
inc esi
cmp esi,26
jne a
mov esi,24
b:call c
dec esi
jnz b
call c
mov eax,1
call d
c:mov ecx,s
sub byte [ecx+esi],32
mov eax,4
mov edx,27
d:mov ebx,1
int 80h
add byte [ecx+esi],32
ret

এটি ELF (সেখানে প্রচুর ফোলা জেরো) সংকলন করতে জায়গার অপচয় বোধ করে। ডসের সিওএম প্রোগ্রাম হিসাবে করা হলে এটি অনেক কমে যেতে পারে। আমি তখন লিনাক্সে :) dosbox চালানোর পারে
রুসলান

আমি জানি এবং আমি ঠিক তাই করেছি। আমার অন্যান্য পোস্ট কোডটি দেখুন gg.stackexchange.com/a/53984/42642 :)
ব্যবহারকারী 2845840

হ্যাঁ, এটি দেখেছি, এটি উত্সাহিত করেছে। যদিও আপনি এটি ছিল খেয়াল করেনি।
রুসলান

4

ডস-এর জন্য x86 সমাবেশ, 41 বাইট সংকলিত

বাইনারি:

00000000  b9 e6 ff b3 61 b8 61 02  50 38 d8 75 02 24 df 88
00000010  c2 cd 21 58 40 3c 7b 75  ef b2 0a cd 21 41 79 02
00000020  43 43 4b 80 f9 19 75 dd  c3

সোর্স কোড, "ওয়েভ.এএসএম" হিসাবে সংরক্ষণ করুন, "নাসম-ফিন-বিন ওয়েভ ডটকম ওয়েভ.এএসএম" দিয়ে সংকলন করুন এবং "ডসবক্স ওয়েভ ডট কম" দিয়ে চালান

org 100h 
section .text
start:
mov cx,-26
mov bl,'a'
next_line:
mov ax, 0261h
next_char:
push ax
cmp al,bl
jnz lower_case
and al,255-32
lower_case:
mov dl,al
int 21h
pop ax
inc ax
cmp al,'z'+1
jnz next_char
mov dl,0ah
int 21h
inc cx
jns move_left
inc bx
inc bx
move_left:
dec bx
cmp cl,25
jnz next_line
ret

4

সি #, 140 139 135 132

void f(){int d=1,i=0;var s="abcdefghijklmnopqrstuvwxyz\n";for(;i>=0;i+=d=i==25?-1:d)Console.Write(s.Replace(s[i],(char)(s[i]-32)));}

সম্প্রসারিত

void f()
{
    int d = 1, i =0;
    var s = "abcdefghijklmnopqrstuvwxyz\n";
    for (; i >= 0; i += d = i == 25 ? -1 : d)
        Console.Write(s.Replace(s[i], (char)(s[i] - 32)));
}

এর পরিবর্তে একটি টার্নারি ব্যবহার করে @ গুন্থার 34567 কে 1 বাইট ধন্যবাদ সংরক্ষণ করা হয়েছেif

4 টি বাইট সংরক্ষিত হয়েছে তারপরে লুপের অভ্যন্তরে সেই অংশটিকে বাসা বাঁধে এবং বর্ণমালাটি লুপের বাইরের দিকে নিয়ে যায়

পূর্ণসংখ্যা ঘোষণার সাথে সম্মিলিত 3 বাইট সংরক্ষিত হয়েছে @ বিটোনফিলকে ধন্যবাদ


1
আপনি পরিবর্তন করে 1 বাইট বাঁচাতে পারে if(i==25)d=-1;থেকেd=i==25?-1:d;
grabthefish

1
আপনি পরিবর্তন করে 3 বাইট সংরক্ষণ করতে পারবেন var d=1করার int d=1,i
ইটোনফিল

3

বাশ: 76 66 টি অক্ষর

printf -va %s {a..z}
for c in {a..z} {y..a};{ echo ${a/$c/${c^}};}

নমুনা রান:

bash-4.3$ printf -va %s {a..z};for c in {a..z} {y..a};{ echo ${a/$c/${c^}};} | head
Abcdefghijklmnopqrstuvwxyz
aBcdefghijklmnopqrstuvwxyz
abCdefghijklmnopqrstuvwxyz
abcDefghijklmnopqrstuvwxyz
abcdEfghijklmnopqrstuvwxyz
abcdeFghijklmnopqrstuvwxyz
abcdefGhijklmnopqrstuvwxyz
abcdefgHijklmnopqrstuvwxyz
abcdefghIjklmnopqrstuvwxyz
abcdefghiJklmnopqrstuvwxyz

একজন বেনামে ব্যবহারকারী পরামর্শ দিয়েছিলেন যে প্রথম লাইনটি একেবারেই প্রয়োজনীয় নয় যা বাইট সংখ্যাটি 45 এ কমিয়ে দেবে
মার্টিন ইন্ডার

মজাদার. তাহলে বর্ণমালা কোথা থেকে প্রদর্শিত হবে?
manatwork

আমি তোমাকে বলতে পারিনি। সম্পাদনাটি কেবল printfকলটি সরিয়ে দেয় । আমি সম্পাদনাটি প্রত্যাখ্যান করেছি , যাতে আপনি নিজে এটি পরীক্ষা করতে পারেন।
মার্টিন এন্ডার

হ্যা, আমি দেখেছিলাম. (সাইটটি আমাকে সম্পাদনা এবং এর ভাগ্য সম্পর্কে অবহিত করেছে।) 1 ম লাইনটি বর্ণমালাটি পরিবর্তনশীল ক এর মধ্যে রাখে, 2 তম লাইনটি কেবল ভেরিয়েবল এ থেকে খালি স্ট্রিং মুদ্রণ করতে পারে, আমি এটিকে প্রত্যাখ্যান করা ছাড়া আর কোনও রেজোলিউশন দেখতে পাচ্ছি না। :(
manatwork

3

সেড: 135 119 116 111 টি অক্ষর

(109 অক্ষর কোড + 1 অক্ষর কমান্ড লাইন বিকল্প + 1 অক্ষর ইনপুট।)

s/.*/abcdefghijklmnopqrstuvwxyz/
h;H;G;H;G;H;g;G
s/.{,28}/\u&/gp
s/$/\t/
:;s/(\w+\n?)\t(.*)/\t\2\1/;t
s/.*Z//

নমুনা রান:

bash-4.3$ sed -rf mexican.sed <<< '' | head
Abcdefghijklmnopqrstuvwxyz
aBcdefghijklmnopqrstuvwxyz
abCdefghijklmnopqrstuvwxyz
abcDefghijklmnopqrstuvwxyz
abcdEfghijklmnopqrstuvwxyz
abcdeFghijklmnopqrstuvwxyz
abcdefGhijklmnopqrstuvwxyz
abcdefgHijklmnopqrstuvwxyz
abcdefghIjklmnopqrstuvwxyz
abcdefghiJklmnopqrstuvwxyz

3

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

c=-1;while(c++<50){console.log('abcdefghijklmnopqrstuvwxyz'.replace(/./g,(x,i)=>i==c|i+c==50?x.toUpperCase():x))}

110 বাইট

for(c=-1;c++<50;)console.log('abcdefghijklmnopqrstuvwxyz'.replace(/./g,(x,i)=>i==c|i+c==50?x.toUpperCase():x))

102 বাইট

পুরাতন স্কুলটি অপরাজিত, যদি না আমাদের কাছে পরিসীমা অপারেটর / ফাংশন / জেনারেটর / জেএসে যাই থাকুক

for(c=-1;c++<50;){for(s='',i=-1;i++<25;)s+=String.fromCharCode(i+(i==c|i+c==50?65:97));console.log(s)}

100 বাইট

দুর্ভাগ্যজনকভাবে ম্যাথ.এবস খুব দীর্ঘ

for(c=51;c--;){for(s='',i=26;i--;)s+=String.fromCharCode(c+i==25|c-i==25?90-i:122-i);console.log(s)}

96 94 বাইট

যদিও আমি ব্যাখ্যা ছাড়াই নীচু হয়েছি আমি আমার সংগ্রাম চালিয়ে যাচ্ছি

for(c=-26;c++<25;){for(s='',i=26;i--;)s+=String.fromCharCode(c*c-i*i?122-i:90-i);console.log(s)}

লুপের নির্দেশাবলীর পুনরায় ব্যবস্থা করে আমরা কয়েকটি বাইট ছাঁটাই করতে পারি:

for(c=-26;c++<25;console.log(s))for(s='',i=26;i--;s+=String.fromCharCode(c*c-i*i?122-i:90-i));

ডাউনভোটগুলি ব্যাখ্যা করুন আউটপুট ভুল?
shabunc

2
আপনার একক পোস্টে প্রযুক্তিগতভাবে একাধিক উত্তর থাকার কারণে? হেল যদি আমি জানি, ভাল শেভিং, যদিও!
স্যান্ডি গিফোর্ড

এছাড়াও, আমি মনে করি আপনি শেষ সেমি-কোলন
স্যান্ডি গিফোর্ড

নাহ, আমি ভুল ছিলাম
Sandy Gifford

3

পার্ল - 95 64 বাইট

সত্যিকারের সুবিধা গ্রহণ \uকরে পরবর্তী চরিত্রটি পার্লে একটি বড় হাতের মুদ্রণ করে।

for$c(0..50){$n=1;print map{++$n==27-abs$c-25?"\u$_":$_}a..z,$/}

31 বাইট সংরক্ষণ এবং এটি ঠিক করার জন্য মানটওয়ার্ককে ধন্যবাদ (আমার আগের কোডটি কার্যকর হয়নি))


এটি \uআলাদা কোডে কাজ করে বলে মনে হচ্ছে তবে আপনার কোডে নয়। :( সমস্ত অক্ষর ছোট হাতের অক্ষর ব্যবহার থাকুন আপনি কি আমাদের দেখানো গেল কিভাবে আপনার কোড চালানো উচিত (আমি একটি ফাইল রাখা তারপর বলা।? perlএটা ফাইলের নাম ক্ষণস্থায়ী, কোন সুইচ।) যাই হোক, আমি ব্যবহার perl5.20.2।
manatwork

যাইহোক, \uএকই স্ট্রিং আক্ষরিক রূপান্তর করতে যখন চিঠিটি অনুসরণ করা হবে তখন এটি কাজ করছে বলে মনে হচ্ছে :for$c(0..50){$n=1;print map{++$n==27-abs$c-25?"\u$_":$_}a..z,$/}
manatwork

@ মানাটওয়ার্ক অদ্ভুত, এটি কাজ করার সময় এটি কাজ করেছিল। (আমি 5.18 ব্যবহার করি)) আপনার কোডটি কাজ করে এবং এটি আকারটিকে উল্লেখযোগ্যভাবে হ্রাস করে, তাই আমি এটি ব্যবহার করব। ধন্যবাদ!
ASCIIThenANSI

2

q (37 অক্ষর)

প্রথম কাটা

@[.Q.a;;upper]'[(raze(|:\)til 26)_26]

@[.Q.a;;upper]@'x,1_reverse x:til 26জন্য 36 বাইট । বা কে 4-তে 29 বাইটের@[.Q.a;;.q.upper]@'x,1_|x:!26 জন্য ।
স্ট্রিস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.