কোড গল্ফ: লেটার-সিপশন


15

চ্যালেঞ্জ:

এক বর্ণের ইনপুট (এক্স থেকে জেড থেকে উচ্চ এবং নিম্ন কেস) এবং একটি অঙ্ক এন (0-9) এন * এক্স এর সাথে সম্পর্কিত চিঠি এক্স প্রিন্ট করুন

চিঠিটি এই তালিকা হতে হবে:

 AAA      BBBB       CCCC     DDDD      EEEEE     FFFFF      GGG      H   H
A   A     B   B     C         D   D     E         F         G         H   H
AAAAA     BBBB      C         D   D     EEEE      FFFF      G  GG     HHHHH
A   A     B   B     C         D   D     E         F         G   G     H   H
A   A     BBBB       CCCC     DDDD      EEEEE     F          GGG      H   H


IIIII         J     K   K     L         M   M     N   N      OOO 
  I           J     K  K      L         MM MM     NN  N     O   O
  I           J     KKK       L         M M M     N N N     O   O
  I       J   J     K  K      L         M   M     N  NN     O   O
IIIII      JJJ      K   K     LLLLL     M   M     N   N      OOO 


PPPP       QQQ      RRRR       SSSS     TTTTT     U   U     V   V     W   W
P   P     Q   Q     R   R     S           T       U   U     V   V     W   W
PPPP      Q   Q     RRRR       SSS        T       U   U     V   V     W   W
P         Q  QQ     R  R          S       T       U   U      V V      W W W
P          QQQQ     R   R     SSSS        T        UUU        V        W W 


X   X     Y   Y     ZZZZZ
 X X       Y Y         Z 
  X         Y         Z  
 X X        Y        Z   
X   X       Y       ZZZZZ

উদাহরণ:

ইনপুট: একটি 1

আউটপুট:

 AAA
A   A
AAAAA
A   A
A   A

ইনপুট: এ 0

আউটপুট: A


ইনপুট: এ 2

আউটপুট:

      AAA  AAA  AAA
     A   AA   AA   A
     AAAAAAAAAAAAAAA
     A   AA   AA   A
     A   AA   AA   A
 AAA                 AAA
A   A               A   A
AAAAA               AAAAA
A   A               A   A
A   A               A   A
 AAA  AAA  AAA  AAA  AAA
A   AA   AA   AA   AA   A
AAAAAAAAAAAAAAAAAAAAAAAAA
A   AA   AA   AA   AA   A
A   AA   AA   AA   AA   A
 AAA                 AAA
A   A               A   A
AAAAA               AAAAA
A   A               A   A
A   A               A   A
 AAA                 AAA
A   A               A   A
AAAAA               AAAAA
A   A               A   A
A   A               A   A

ইনপুট: এ -1

আউটপুট: কি কখনও: এটা কোন ব্যাপার না


অতিরিক্ত বিধি:

  • ইনপুট পরামিতিগুলি আপনি যে কোনও চরিত্রটি চান তা দ্বারা আলাদা করা যায়।
  • এটিকে আঁকার জন্য প্রতিটি বর্ণের নিজের মূলধনকে ascii-চরিত্র হিসাবে ব্যবহার করতে হবে।
  • ট্রেলিং স্পেস, নতুন লাইন ইত্যাদি অনুমোদিত
  • কোনও প্রোগ্রামের পরিবর্তে, আপনি এমন একটি ফাংশন লিখতে পারেন যা ডিজিট স্ট্রিংকে আর্গুমেন্ট হিসাবে গ্রহণ করে। আউটপুটটি সাধারণত প্রিন্ট করা উচিত।
  • স্টাডাউট / স্টার্ডার কিছু যায় আসে না, কেবল একটি বাছাই করুন। স্টাফ যদি অন্যের উপর মুদ্রিত হয় তবে তাতে কিছু আসে যায় না।
  • সম্ভাব্য আউটপুট ফর্ম্যাটগুলি STDOUT এ মুদ্রিত হতে পারে, স্ট্রিংগুলির তালিকা হিসাবে ফিরে আসে, অক্ষর ম্যাট্রিক্স হিসাবে ফিরে আসে, যতক্ষণ না ফলস্বরূপ ভাষাগুলি ডিফল্ট মুদ্রণ পদ্ধতি ব্যবহার করে মুদ্রণ করা যায় *

*: f (a, 1) ফাংশনের মতো স্ট্রিংটি রিটার্ন দেয় এবং প্রিন্ট (f (a, 1)) প্রিন্টটি () কলটির উত্তরের অংশটি না বানিয়ে বলতে পারে। (এটি কেভিন ক্রুইজসেন এবং আর্নল্ড নির্দেশ করেছেন)।

বিজয়ী:

এটি কোড-গল্ফ, সর্বনিম্ন বাইট-কাউন্ট জেতা। আনন্দ কর!


সম্পাদনা : এই প্রশ্ন মনে হয় খুব অভিন্ন করার এই তবে আমি বলতে হবে তা না হয়, উচিত যেমন না শুধুমাত্র এইচ কিন্তু বর্ণমালা থেকে প্রতিটি অক্ষর জন্য কাজ .. Guess আপনি বরং বা না সিদ্ধান্ত নেন এটা সদৃশ।



3
@ এলপিড্রো আপনাকে ধন্যবাদ! আমি এখনও স্যান্ডবক্স সম্পর্কে জানতাম না, আপনাকে অনেক ধন্যবাদ আমি এটি ঘনিষ্ঠভাবে দেখব!
নিকোলাস ব্রুয়ের

2
ভাল লাগলো প্রথম চ্যালেঞ্জ! যাইহোক, আপনার প্রশ্ন বর্তমানে পরামর্শ দেয় যে আমরা কেবল ফলাফল মুদ্রণ করতে পারি । ডিফল্ট নিয়মটি হ'ল ফাংশনগুলিকে কেবল এটি ফেরত দেওয়ার অনুমতি দেওয়া হয়। সাধারণত বলতে গেলে, I / O ফর্ম্যাটগুলি খুব নমনীয়। আপনি মেটাতে এই পোস্টটি একবার দেখতে চান যা এর কারণ ব্যাখ্যা করে।
আর্নৌল্ড

2
@ আর্নল্ড যেমন এটি ASCII শিল্প সম্পর্কে আমি বলব ফলাফলটি মুদ্রণ করা কিছুটা গুরুত্বপূর্ণ কাজ, তবে আমি অনুমান করি যে যদি আপনার কোড ফলাফলটি দেয় এবং প্রত্যাবর্তিত স্ট্রিংটি কেবলমাত্র ভাষা ডিফল্ট মুদ্রণ পদ্ধতি ব্যবহার করে মুদ্রণ করা যায় (যেমন আপনার ফাংশন এফ (a, 1) স্ট্রিংটি ফিরিয়ে দিন এবং আমি কেবল প্রিন্ট (f (a, 1)) মুদ্রণ () কলটি উত্তর কোডের অংশ হতে হবে না বলতে পারি this এটি যদি কিছুটা বোধগম্য হয় এবং আপনি সম্মত হন তবে আমি এটিতে যুক্ত করতে পারি চ্যালেঞ্জ বর্ণনা।
নিকোলাস ব্রয়ার

2
@ কেভিন ক্রুজসেন আমি প্রশ্নটি সামান্য আপডেট করেছি, দয়া করে আমাকে এটি লেখার পদ্ধতিটি বোধগম্য কিনা তা বলুন :)
নিকোলাস ব্রুয়ের

উত্তর:


6

জাভাস্ক্রিপ্ট (ES8), 281 বাইট

হিসাবে ইনপুট লাগে (letter)(N)। একটি স্ট্রিং প্রদান করে।

c=>n=>(g=y=>y--?''.padEnd(w).replace(/./g,(_,x)=>(h=d=>~~(d/=5)?(P=parseInt)('hhvhefhfhfu111ufhhhfv1f1v11f1vehp1ehhvhhv444vehgggh979hv1111hhlrhhpljhehhhe11fhfuphheh9fhffge1u4444vehhhh4ahhhalhhhha4ah444ahv248v'[y/d%5+5*P(c,36)-50|0],36)>>x/d%5&1?h(d):' ':c)(w))+`
`+g(y):'')(w=5**n)

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

কিভাবে?

হরফ এনকোডিং

5×5031

সঞ্চিত প্যাটার্নটি অনুভূমিকভাবে এবং উলম্বভাবে উভয়ই মিরর করা হয়।

'এফ' এর উদাহরণ:

#####     ....#     00001      1     '1'
#....     ....#     00001      1     '1'
####. --> .#### --> 01111 --> 15 --> 'f' --> '11f1v'
#....     ....#     00001      1     '1'
#....     #####     11111     31     'v'

26×5=130

(এক্স,Y)এন

parseInt('hhvhefhfh...'[y + 5 * n], 36) >> x & 1

প্রধান অ্যালগরিদম

এনW=5এন

0এক্স<W0Y<W(এক্স,Y)

(এক্স5গেলিক ভাষার5,Y5গেলিক ভাষার5)

[0...এন-1]

কিছু গভীরতায় ফাঁকা পিক্সেল শনাক্ত হওয়ার সাথে সাথে ফাংশনটি একটি স্থান ফিরে আসে বা সমস্ত পুনরাবৃত্তি সফল হলে ইনপুট চিঠির সাথে সম্পর্কিত অক্ষর character


এটি সত্যিই ভাল কাজ করে, অভিনন্দন! আপনি কি দয়া করে কোডটি কিছুটা ব্যাখ্যা করার চেষ্টা করতে পারেন?
নিকোলাস ব্রুয়ার

যে প্যাটার্নটি সংরক্ষণ করা হয়েছে তা কেন অনুভূমিকভাবে এবং উলম্বভাবে মিরর করা যায়? এটি সংরক্ষণ করার জন্য একেবারে মিরর না দেওয়ার জন্য আরও বাইট লাগবে? এবং ব্যাখ্যার জন্য টিভিম *। *
নিকোলাস ব্রুয়ার

1
YW-10

1
(যদিও আমি মনে করি আমরা বিনা দামে উল্লম্ব আয়নাটি ফেলে দিতে পারি))
আর্নল্ড

6

আর , 348 বাইট

function(K,N){if(N)for(i in 1:N)T=T%x%matrix(c(15269425,32045630,16269839,32032318,33061407,33061392,15224366,18415153,32641183,1082926,18444881,17318431,18732593,18667121,15255086,32045584,15255151,32045649,16267326,32641156,18400814,18400580,18400938,18157905,18157700,32575775)[utf8ToInt(K)-64]%/%2^(24:0)%%2,5,5)
write(c(" ",K)[T+1],1,5^N,,"")}

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

আওরোসের প্রায় অনুরূপ একটি এনকোডিং ব্যবহার করে ' ; যাইহোক, এটি বিটগুলি বিপরীত করে না, পরিবর্তে এগুলি সরাসরি ব্যবহার করার বিকল্প বেছে নেয়।

এরপরে এটি বিটগুলির একটি 5x5 ম্যাট্রিক্স তৈরি করে এবং স্ট্যান্ডআউটে ফলাফল লিখতে প্রয়োজনীয় প্যাটার্ন উত্পন্ন করতে ক্রোনেকার পাওয়ার ম্যাট্রিক্স তৈরি করে।


এটি ক্রোনেকারের দুর্দান্ত ব্যবহার!


@ ডিজাইম সমস্ত এই চ্যালেঞ্জের কেন্দ্রস্থল হ'ল সংকোচন পদ্ধতি (যাইহোক কোড-গল্ফ দৃষ্টিকোণ থেকে)। আপনি কেন এটি উত্তর হিসাবে পোস্ট করেন না যাতে আপনি এটিও ব্যাখ্যা করতে পারেন?
জিউসেপ

ঠিক আছে, ধন্যবাদ!

5

পরিষ্কার , 436 372 বাইট

নতুন আইও ফর্ম্যাটটি উল্লেখযোগ্যভাবে খাটো।

import StdEnv,StdLib
t=transpose
f=flatten
$0c=[[c]]
$n c=f[t(f[t($(n-1)if(isOdd({#18415150,16301615,31491134,16303663,32554047,1096767,15262766,18415153,32641183,15254032,18128177,32539681,18405233,18667121,15255086,1097263,32294446,18136623,16267326,4329631,15255089,4539953,11191857,18157905,4329809,32575775}.[toInt(max'A'c)-65]>>p))c' ')\\p<-[i..i+4]])\\i<-[0,5..20]]

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

Patterns 700 বাইট সংরক্ষণের জন্য পূর্ণসংখ্যার লিটারেলের বিটগুলিতে অক্ষরের নিদর্শনগুলিকে সংকুচিত করে। উদাহরণস্বরূপ A:

  1. চেপটান [[' AAA '],['A A'],['AAAAA'],['A A'],['A A']]
  2. বিপরীত [' AAA A AAAAAAA AA A']
  3. ঘুরুন ['A AA AAAAAAA A AAA ']বাইনারি মধ্যে ( 'A' = 1, ' ' = 0)
  4. দশকে 0b1000110001111111000101110পরিণত হয়
  5. পাওয়া 18415150

4

আর , 259 বাইট

function(K,N,`!`=utf8ToInt){if(N)for(i in 1:N)T=T%x%(sapply(!"			




",intToBits)[1:5,5*(-64+!K)-4:0]>0)
write(c(" ",K)[T+1],1,5^N,,"")}

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

অস্বীকৃতি:
এই সমাধানটি @ জিউসেপের উত্তর নিয়ে এবং ম্যাট্রিক্স সংকোচনের পরিবর্তে @ আরনোল্ডের উত্তরের সাথে যেভাবে ব্যবহৃত হয়েছে তার সাথে খুব সামঞ্জস্য রেখে এই সমাধানটি পাওয়া গেছে , তাই প্রথমে তাদের আপভোট করুন :)

ধারণা নিম্নোক্ত :

এই 5 x 26*5ম্যাট্রিক্স দেওয়া 0/1:

(1 replaced by '#', 0 replaced by '.' and '|' added for readability)

.####|#####|.###.|#####|#####|#####|.###.|#####|#...#|...#.|#####|#####|#####|
#.#..|#.#.#|#...#|#...#|#.#.#|#.#..|#...#|..#..|#...#|....#|..#..|....#|.#...|
#.#..|#.#.#|#...#|#...#|#.#.#|#.#..|#...#|..#..|#####|....#|..#..|....#|..#..|
#.#..|#.#.#|#...#|#...#|#.#.#|#.#..|#.#.#|..#..|#...#|....#|.#.#.|....#|.#...|
.####|.#.#.|#...#|.###.|#...#|#....|..##.|#####|#...#|####.|#...#|....#|#####| ...
  ^     ^     ^     ^     ^     ^     ^     ^     ^     ^     ^     ^     ^   
  |     |     |     |     |     |     |     |     |     |     |     |     |   
  A     B     C     D     E     F     G     H     I     J     K     L     M   

প্রতিটি কলামটি বাইনারি সংখ্যা হিসাবে বিবেচিত হয় এবং একটি পূর্ণসংখ্যায় রূপান্তরিত হয়। এই পূর্ণসংখ্যাটি 1 ... 31 ব্যাপ্তির মধ্যে অপরিশোধিত ASCII তে রূপান্তরিত হয়:

উদাহরণস্বরূপ "B", চূড়ান্ত স্ট্রিংয়ের কলামগুলির জন্য "\017\021\017\021\017"(অক্টাল প্রতিনিধিত্বমূলক অক্ষরযুক্ত অক্ষর):

#####                   ####.     11110          15            '\017'
#.#.#                   #...#     10001          17            '\021'
#.#.#      ------->     ####. --> 11110  ------> 15   ------>  '\017'
#.#.#                   #...#     10001          17            '\021'
.#.#.                   ####.     11110          15            '\017'

          (transposed                  bin to int   int to ASCII
         for reability)    

অতএব, 5*26 = 130অক্ষরের চূড়ান্ত স্ট্রিং দেওয়া , আমরা সেই স্ট্রিংটি 0/1ব্যবহারের ম্যাট্রিক্সে ফিরিয়ে আনি :

sapply(utf8ToInt(STRING),intToBits)

তারপরে আমরা কেবল প্রথম 5 টি সারি নির্বাচন করে ম্যাট্রিক্সকে কেবল সাবটেক্ট করি (ইনটোটোবিটস 32 বিট দেয়) এবং কেবলমাত্র চিঠিটির সাথে সম্পর্কিত কলামগুলি ইনপুট হিসাবে পাস হয়েছিল এবং শেষ পর্যন্ত আমরা @ জিউস্পির উত্তরে বর্ণিত ক্রোনেকার প্রয়োগ করি ।


আপনি টুকরোড়া শেভ করতে ব্যবহার করতে পারেন এবং ব্যবহার করতে -48পারেন! স্থানে U: এটা চেষ্টা অনলাইন
: Giuseppe

@ জিউসেপ: দুর্দান্ত! আমি একটি সম্প্রদায়ের
উইকিটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.