ছোট "এইচ" এস থেকে একটি "এইচ" তৈরি করুন


73

চ্যালেঞ্জ

একটি ক্রিয়াকলাপ বা প্রোগ্রাম তৈরি করুন যা পূর্ণসংখ্যা দেওয়া sizeহলে নিম্নলিখিতটি করে:

যদি size1 এর সমান হয় তবে আউটপুট

H H
HHH
H H

যদি size1 এর বেশি হয় তবে আউটপুট

X X
XXX
X X

Xপ্রোগ্রাম / ফাংশনের আউটপুট কোথায় wheresize - 1

(যদি আপনি পছন্দ করেন তবে আপনার বেসের সাথে এটি উপযুক্ত হতে পারে 0, যতক্ষণ আপনি নিজের উত্তরে উল্লেখ করেছেন)

নিম্নলিখিত যে কোনও আউটপুট ফর্ম্যাট গ্রহণযোগ্য, যাহা আপনার পক্ষে আরও সুবিধাজনক:

  • কোন দুটি স্বতন্ত্র অক্ষর সংশ্লিষ্ট সঙ্গে প্রয়োজনীয় কাঠামো একটি স্ট্রিং Hএবংspace

  • প্রয়োজনীয় কাঠামো সঙ্গে একটি দ্বি-মাত্রিক অ্যারে, কোনো দুটি স্বতন্ত্র মান সংশ্লিষ্ট সঙ্গে Hএবংspace

  • একটি বিন্যাস / স্ট্রিং তালিকা, প্রতিটি স্ট্রিং আউটপুট এক লাইন সঙ্গে, কোন দুটি স্বতন্ত্র মান সংশ্লিষ্ট সঙ্গে Hএবংspace

নেতৃস্থানীয় স্পেসগুলি অনুমোদিত, যতক্ষণ না প্রতিটি লাইনে নিয়মিত পরিমাণে শীর্ষস্থানীয় স্থান থাকে space দুটি স্বতন্ত্র আউটপুট অক্ষর আপনার চয়ন করা কোনও কিছুর উপর নির্ভরশীল হতে পারে যতক্ষণ না সেগুলি আলাদা are

আপনার কোডটি কী আউটপুট ফর্ম্যাটটি ফিরে আসছে তা উল্লেখ করুন।

পরীক্ষার মামলা

1

H H
HHH
H H

2

H H   H H
HHH   HHH
H H   H H
H HH HH H
HHHHHHHHH
H HH HH H
H H   H H
HHH   HHH
H H   H H

3

H H   H H         H H   H H
HHH   HHH         HHH   HHH
H H   H H         H H   H H
H HH HH H         H HH HH H
HHHHHHHHH         HHHHHHHHH
H HH HH H         H HH HH H
H H   H H         H H   H H
HHH   HHH         HHH   HHH
H H   H H         H H   H H
H H   H HH H   H HH H   H H
HHH   HHHHHH   HHHHHH   HHH
H H   H HH H   H HH H   H H
H HH HH HH HH HH HH HH HH H
HHHHHHHHHHHHHHHHHHHHHHHHHHH
H HH HH HH HH HH HH HH HH H
H H   H HH H   H HH H   H H
HHH   HHHHHH   HHHHHH   HHH
H H   H HH H   H HH H   H H
H H   H H         H H   H H
HHH   HHH         HHH   HHH
H H   H H         H H   H H
H HH HH H         H HH HH H
HHHHHHHHH         HHHHHHHHH
H HH HH H         H HH HH H
H H   H H         H H   H H
HHH   HHH         HHH   HHH
H H   H H         H H   H H

এটি , তাই প্রতিটি ভাষার জন্য সর্বনিম্ন বাইট গণনা!

code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

4
কাঠকয়ালের জন্য সম্ভবত নিখুঁত ... লোল। পিপিসিজিতেও স্বাগতম! : ডি
হাইপারনিউটারিনো

10
পিপিসিজিতে আপনাকে স্বাগতম। প্রথম প্রথম চ্যালেঞ্জ!
অ্যাডম

আমরা কি 0 ভিত্তিক আকার ব্যবহার করতে পারি?
অ্যাডম


1
আমি এটিকে "সিয়েরপিনস্কি এইচ"
বলব

উত্তর:


28

ওল্ফ্রাম ভাষা (গণিত) , 46 বাইট

Nest[ArrayFlatten@{r={#,0,#},{#,#,#},r}&,1,#]&

0S এবং 1s এর 2d অ্যারে প্রদান করে ।

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

নেস্ট [ArrayFlatten @ {R = {#, 0, #}, {#, #, #}, দ} এবং, 1, #] & [3] // MatrixForm

নেস্ট [ArrayFlatten @ {R = {#, 0, #}, {#, #, #}, দ} এবং, 1, #] & [5] // ভাবমূর্তি


17
অবশ্যই হ্যাক অবশ্যই গণিতের পুনরাবৃত্ত নেস্টেড অ্যারেগুলির জন্য একটি বিল্ট-ইন রয়েছে ol +1
হাইপারনিউটারিনো

1
@ হাইপারনিউটারিনো স্পষ্টতই বলেছেন
এএসসিআইআই-কেবল

7
@ হাইপারনিউট্রিনো এটি কীভাবে অন্তর্নির্মিত হিসাবে বিবেচনা করা হয়? শুধু Nest(বারবার) একাধিক বার ফাংশন। অন্য যেকোন সাবমিশনের মতো (জেলি?) ArrayFlattenহ'ল ... ভাল, অন্তর্নির্মিত, তবে এটি কিছুটা ঠিক Flatten[#,{{1,3},{2,4}}]এই ক্ষেত্রে আচরণ করে । (পরীক্ষা করা হয়নি)
ব্যবহারকারী 202729


1
উপমহাদেশের চ্যালেঞ্জের জয়জয়কারীর পরিপ্রেক্ষিতে এটি কীভাবে সম্ভব হয়নি ?
ojdo

21

ক্যানভাস , 14 12 বাইট

H;[⌐⌐∔*×∔;3*+

এখানে চেষ্টা করুন!

ব্যাখ্যা:
Code    |Instruction                                                         |Stack
--------+--------------------------------------------------------------------+-------------------------
        |Push input to stack (implicit)                                      |I
H       |Push "H" to stack                                                   |I,"H"
;      |Swap the top two stack items                                        |"H",I
[      |The following ToS (input) times:                                    |X
    ⌐⌐  |Duplicate ToS (result from last loop ("H" if first loop)) four times|X,X,X,X,X
    ∔   |Join vertically                                                     |X,X,X,X\nX
    ×   |Prepend                                                             |X,X,XX\nX
    ∔   |Join vertically                                                     |X,X\nXX\nX
    ;  |Swap top two stack items                                            |X\nXX\nX,X
    3*|Repeat three times vertically                                       |X\nXX\nX,X\nX\nX
    +  |Join horizontally                                                   |X<space>X\nXXX\nX<space>X
        |End loop (implicit)                                                 |X
        |Print ToS (implicit)                                                |

Iইনপুটটি কোথায় , Xএটি পূর্ববর্তী লুপ দ্বারা উত্পাদিত প্যাটার্নটি (প্রথম লুপের জন্য "এইচ"), এবং <space>নিদর্শনটির প্রথম এবং তৃতীয় সারিতে ফাঁকা স্থান, স্পষ্টতই যুক্ত করা হয়েছে

-২ বাইট ধন্যবাদ জাজিমা !



19

এমএটিএল , 12 11 বাইট

t:"[ACA]BX*

ইনপুট দেওয়া হয়েছে n, এটি একটি ম্যাট্রিক্স 0এবং আউটপুট দেয় n

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

এটিকে শিরোনামে ম্যাট্রিক্স Hএবং স্পেস যুক্ত করে একটি অক্ষরে রূপান্তর করতে g72*cঅনলাইনেও চেষ্টা করে দেখুন!

অথবা ]1YCগ্রাফিকভাবে প্রদর্শিত ম্যাট্রিক্স দেখতে যুক্ত করুন । এমএটিএল অনলাইন এ চেষ্টা করুন !

ব্যাখ্যা

t          % Input (implicit): n. Duplicate
:          % Range. Gives the array [ 1 2 ... n]
"          % For each (that is, do n times)
  [ACA]    %   Push the array [5 7 5]
  B        %   Convert to binary. Gives the 3×3 matrix [1 0 1; 1 1 1; 1 0 1]
  X*       %   Kronecker product
           % End (implicit). Display (implicit)

16

স্ট্যাক্স , 16 15 বাইট

╛c_mê║6{│◙ÖmπV"

এটি চালান এবং এটি ডিবাগ করুন

এটি মন্তব্য সহ প্রোগ্রামটির আসকি উপস্থাপনা। এই প্রোগ্রামটি এইচ পাশের পাশে তৈরি করে, এবং তারপরে একবারে স্থানান্তর করে।

'H]                 ["H"]
   {         },*    repeat block specified number of times
    c               copy the matrix
     {3*m           triplicate each row
         |S         surround; prepend and append like b + a + b
           |C       horizontally center rows with spaces
                M   transpose back to original orientation
                 m  output each row

বোনাস 14 বাইট প্রোগ্রাম - আউটপুট অক্ষর হিসাবে তার ইনপুট ব্যবহার করে। তাত্ত্বিকভাবে, এটি 10 ​​এ সঠিক আকার তৈরি করতে পারে না কারণ এটির 2 ডিজিট রয়েছে, তবে এটি চালানোর চেষ্টা করে যা আমার ব্রাউজারটিকে ক্র্যাশ করে।


11

রুবি , 72 বাইট

আউটপুট স্ট্রিংগুলির তালিকা, প্রতি লাইনে একটি স্ট্রিং।

f=->n{n<1?[?H]:[*a=(x=f[n-1]).map{|i|i+' '*i.size+i},*x.map{|i|i*3},*a]}

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


সাবাশ! আউটপুটটি প্রথমে টিওতে ভুল দেখায়, তবে জুম শেষ হয়ে গেলে এটি ঠিক আছে।
এরিক ডুমিনিল

10

হাস্কেল , 50 বাইট

f 0=[[1]]
f n=[x++map(*c)x++x|c<-[0,1,0],x<-f$n-1]

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

0 এবং 1 এর গ্রিড তৈরি করে। স্পেস এবং এইচ এর জন্য একটি চরিত্র দীর্ঘতর longer

হাস্কেল , 51 বাইট

f 0=["H"]
f n=[x++map(min c)x++x|c<-" H ",x<-f$n-1]

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



9

এপিএল (ডায়ালগ ক্লাসিক) , 14 বাইট

×/¨∘.≥⍨2|,⍳⎕⍴3

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

মূল্যায়ন ইনপুট n

,⍳⎕⍴3 0 1 2 থেকে উপাদানগুলির সাথে সমস্ত এন-টিপলস

2| Mod 2

×/¨∘.≥⍨ a এবং b এর প্রতিটি জোড়াকে তুলনা করে একটি ম্যাট্রিক্স গঠন করুন - যদি a এর সমস্ত উপাদান b b এর সাথে সম্পর্কিত উপাদান হয় তবে এটি 1, অন্যথায় 0



8

আর , 64 বাইট

function(n)Reduce(`%x%`,rep(list(matrix(c(1,1,1,0,1,0),3,3)),n))

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

লুই মেন্ডোর জবাবের নির্লজ্জ বন্দর হিসাবে ক্রোনেক্কার পণ্য দ্বারা হ্রাস ।

পাদচরণ চমত্কারভাবে ফলাফলের ছাপে, কিন্তু এই একটি বেনামী ফাংশন যা ফেরৎ matrixএর 1জন্য Hএবং 0স্থান জন্য।


8

জাভা (ওপেনজেডকে 9) , 135 বাইট

n->{n+=Math.pow(3,n)-n;int s=1,H[][]=new int[n][n],x,y;for(;s<n;s*=3)for(x=n;x-->0;)for(y=n;y-->0;)H[x][y]|=~(x/s%3)&y/s%3&1;return H;}

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

জন্য এবং এর int[][]সাথে একটি প্রদান করে । এটি আসলে " পাইলিং" এর পরিবর্তে এর দেয়ালের "খোদাই" করে ।0H1spaceHH

ব্যাখ্যা

n->{                        // An int to int[][] lambda function
  n+=Math.pow(3,n)-n;       //  change n to 3^n, through +=...-n to avoid an explicit cast
  int s=1,                  //  size of the carvings.
      H[][]=new int[n][n],  //  the 2D array to return, filled with 0s
      x,                    //  counter for the 2D array
      y;                    //  counter for the 2D array
  for(;s<n;s*=3)            //  for each size
    for(x=n;x-->0;)         //   for each row
      for(y=n;y-->0;)       //    for each column
        H[x][y] |=          //     assign 1 to a cell of the array if...
           ~(x/s%3)         //      it is located in the "holes" of the H
          &y/s%3            //
          &1;               //      
  return H;                 //  return the array
}                           // end the lambda

ম্যাথ.প্যাও
সেলিম

4
@ সেলিম স্ট্যাটিক আমদানি বাইট গণনায় প্রয়োজনীয়। সুতরাং আমি হারাতে হবে ... 19 বাইট।
অলিভিয়ার গ্রাওগায়ার

7

ভি , 22 বাইট

éHÀñäLgvr PGï3PkyHGpH

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

Hexdump:

00000000: e948 c0f1 e416 4c67 7672 2050 47ef 3350  .H....Lgvr PG.3P
00000010: 6b79 4847 7048                           kyHGpH

এটি মূলত সিয়েরপিনস্কি কার্পেট এবং অ্যানার্কি গল্ফের ফ্র্যাক্টাল প্লাসের মতো একই পন্থা ।


এটা কি ফরাসি?
স্টান স্ট্রাম

7

পাইথন 2 , 70 বাইট

f=lambda r:-r*'H'or[x+[x,' '*3**r][b]+x for b in 1,0,1for x in f(r-1)]

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

ফাংশন স্ট্রিংগুলির একটি তালিকা আউটপুট করে।


পাইথন 2 , 84 বাইট

r=input()
for i in range(3**r):x,s=' H';exec"s+=[x,s][i%3%2]+s;x*=3;i/=3;"*r;print s

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

অন্যান্য 3 * 3 ফ্র্যাক্টাল নিদর্শনগুলির মতো একই টেম্পলেট ব্যবহার করে:



6

হাস্কেল, 73 67 64 55 বাইট

g#f=g<>f<>g
w=map.(id#)
(iterate(w(>>" ")#w id)["H"]!!)

এটি কেবল সর্বশেষতম সংস্করণে কাজ করে Prelude, কারণ এটি <>থেকে রফতানি হয় Data.Semigroup। এটি টিআইওতে চালাতে, এখানে সম্পন্ন হিসাবে একটি আমদানি যুক্ত করুন: এটি অনলাইনে চেষ্টা করুন!

g#f=              -- function # takes two functions g and f and a list s
                  -- and returns
   g <> f <> g    -- g(s), followed by f(s) and another g(s)

w=                -- w takes a function and a list of lists
                  -- (both as unnamed parameters, because of pointfree style,
                  -- so let's call them f and l)
  map.(id#)       -- return map(id#f)l, i.e. apply (id#f) to every element of l

  w(>>" ")#w id   -- this partial application of # is a function that
                  -- takes the missing list (here a list of lists)
                  -- remember: (>>" ") is the function that replaces every element
                  -- of a list with a single space

iterate(   )["H"] -- starting with a singleton list of the string "H"
                  -- which itself is a singleton list of the char 'H'
                  -- repeatedly apply the above function
              !!  -- and pick the nth iteration



Example for ["H H", "HHH", "H H"], i.e.

   H H
   HHH
   H H

call the iterated function:
                    ( w(>>" ")         # w id       ) ["H H","HHH","H H"]

expand w:           ( map(id#(>>" "))  # map(id#id) ) ["H H","HHH","H H"]

expand outermost #: map(id#(>>" "))["H H","HHH","H H"] ++
                    map(id#id)     ["H H","HHH","H H"] ++
                    map(id#(>>" "))["H H","HHH","H H"]

expand map:         [(id#(>>" "))"H H",   (id#(>>" "))"HHH",   (id#(>>" "))"H H"] ++
                    [(id#id)     "H H",   (id#id)     "HHH",   (id#id)     "H H"] ++
                    [(id#(>>" "))"H H",   (id#(>>" "))"HHH",   (id#(>>" "))"H H"]

expand other #:     ["H H"++"   "++"H H", "HHH"++"   "++"HHH", "H H"++"   "++"H H"] ++
                    ["H H"++"H H"++"H H", "HHH"++"HHH"++"HHH", "H H"++"H H"++"H H"] ++
                    ["H H"++"   "++"H H", "HHH"++"   "++"HHH", "H H"++"   "++"H H"]

collaps ++:         ["H H   H H", "HHH   HHH", "H H   H H",
                     "H HH HH H", "HHHHHHHHH", "H HH HH H",
                     "H H   H H", "HHH   HHH", "H H   H H"]

which is printed line by line: 

  H H   H H
  HHH   HHH
  H H   H H
  H HH HH H
  HHHHHHHHH
  H HH HH H
  H H   H H
  HHH   HHH
  H H   H H

সম্পাদনা করুন: -9 বাইট @ আলু 44 ধন্যবাদ।


3
আপনি জিএইচসি 8.4 ব্যবহার (#)করে g#f=g<>f<>gযদি আপনি গল্ফ করতে সক্ষম হন । এটি কারণ কারণ Semigroupএখন উপস্থাপনা।
আলু 44

@ আলু 44: আমি নিশ্চিত যে এটি প্রচুর চ্যালেঞ্জের ক্ষেত্রে সহায়তা করবে। ধন্যবাদ!
নিমি

5

পার্ল 5 , 46 44 43 41 40 বাইট

1 ভিত্তিক গণনা। ব্যবহার 0এবং 1জন্য Hএবং স্থান, একটি নেতৃস্থানীয় 1(স্থান) আছে

say//,map/$'/^1,@;for@;=glob"{A,.,A}"x<>

Mtve দ্বারা একটি ক্লাসিক ধারণা উপর ভিত্তি করে।

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


1
N ≥ 3 এর আউটপুট বেশ সঠিক নয় isn't
প্রিমো

@ প্রিমো প্রোগ্রামটি সঠিক ছিল তবে টিআইও বিশেষ অক্ষরের UTF-8 সংস্করণ ব্যবহার করে। পরিবর্তে আমি পালানোর জন্য লিঙ্কটি স্থির করেছি, তবে আপনি যদি আসল আক্ষরিক চরিত্রগুলি ব্যবহার করেন তবে প্রোগ্রামটি এখনও কাজ করে
টন হসপেল

কেন \321প্রয়োজনীয় তা আমার কোনও ধারণা নেই , কোনও চরিত্রই কাজ করে বলে মনে হচ্ছে। //এবং $'প্রতিস্থাপনও করতে পারে //gএবং $`, তবে আমি নিশ্চিত নই যে এটি কোনও উন্নতির দিকে নিয়ে যায়।
primo

1
@ প্রিয়মো ধন্যবাদ! আমি এখনও পুরানো এমটিভি সমাধান থেকে প্রাপ্ত কোড থেকে কাজ করছিলাম যেখানে \321বিট পরিপূরক ছিল .(অন্য ফ্র্যাক্টাল প্যাটার্ন উত্পন্ন করতে ব্যবহৃত হয়েছিল)। তবে আমি বিট-পরিপূরককে ফেলে দিয়েছি অবশ্যই অবশ্যই আমার আর এটির দরকার নেই। আমি ব্যবহার করেছি //gএবং $ `তাই আমি কমান্ডলাইন থেকে কোডটি সহজেই পরীক্ষা করতে পারি ( //এবং $'আমি দেখতে !
পেল

5

ভিম - 66 56 54 বাইট

A @ c H esc " r d ^ q c { ctrl-v } " a y g v r space g v d " a P P " a P V G " b y P g v ctrl-v $ d " a P . . G " b p q @ r

বাফারে একটি নম্বর হিসাবে ইনপুট নেওয়া হয়।


ফলাফলটি দেখার জন্য, ভিশ প্রম্পট থেকে শুরু করে, আমি ভিএম ইনস্টল করেছি, ধরে নিয়ে আমার কী টাইপ করতে হবে?
ফ্যাবিয়েন

টাইপ করুন ভিএম, এন্টার টিপুন, বাফারে ইনপুট নম্বর টাইপ করুন (উদাহরণস্বরূপ 3) তারপরে, সাধারণ মোড থেকে, পোস্ট থেকে কীগুলির ক্রম টিপুন।
চিয়েল টেন ব্রিনকে

ভ্যানিলা
ভিম

কোডটিতে একটি টাইপ ছিল। ঠিক ঠিক করে ফেলেছি।
চিয়েল দশ ব্রিনকে

1
কাজ করে! <kbd> আমি </ কেবিডি> একটি মূলধন i, ell নয়। :set nowrap4 এবং আরও জন্য ফলাফল দেখুন।
ফ্যাবিয়েন

4

এপিএল (ডায়ালগ ইউনিকোড) , 38 34 বাইট এসবিসিএস

({(⍵,(0×⍵),⍵){⍺⍪⍵⍪⍺}⍵,⍵,⍵}⍣⎕)1 1⍴1

আউটপুট একটি 2-মাত্রিক অ্যারে যা 1এইচ 0প্রতিনিধিত্ব করে এবং স্থান প্রতিনিধিত্ব করে is

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


2
পিপিসিজিতে আপনাকে স্বাগতম! আপনি বাদ পারেন f←এবং 1 বাইট প্রতিটি যেমন অক্ষর গণনা: codegolf.meta.stackexchange.com/questions/9428/... এটি থেকে ইনপুট নিতে আইনি বিবেচিত হচ্ছে , অর্থাত্ প্রতিস্থাপন ⍣⍵সঙ্গে ⍣⎕এবং বাইরের dfn এর ধনুর্বন্ধনী ড্রপ।
ngn

ধন্যবাদ! আমি আসলে কখনও আনুষ্ঠানিকভাবে এপিএলকে গল্ফ করেছিলাম না তাই এগুলি সাহায্য করা উচিত।
এম জ্যাকুয়েট

1 1⍴1⍪1অপারেটরের চারপাশে পেরেনগুলি অপ্রয়োজনীয় হয়ে উঠতে পারে written যদি আপনি ট্রেনগুলির সাথে পরিচিত হন - তবে তারা এখানে অনেক সাহায্য করতে পারে।
ngn

এছাড়াও, আপনার বন্ধু: (⍵,(0×⍵),⍵)=>(⍵,⍵,⍨0×⍵)
জাকারিয়া

4

কাঠকয়লা , 30 29 বাইট

HFENX³ι«J⁰¦⁰C⁰ιCιιT⊗ι⊗ι‖OO→↓ι

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

H

মূল মুদ্রণ করুন H

FENX³ι«

প্রথম sizeক্ষমতা উপর লুপ ।

J⁰¦⁰

কার্সারটিকে আবার উত্সে নিয়ে যান। Trimএর মূল মুদ্রণ Hএবং নীচের প্রতিচ্ছবি উভয়ই কার্সারকে সরানোর জন্য এটি প্রয়োজন।

C⁰ι

পূর্ববর্তী পুনরাবৃত্তিটি ডমিনো তৈরি করে নীচের দিকে অনুলিপি করুন।

Cιι

একটি টেট্রোমিনো তৈরি করে ফলাফলটি নীচে এবং ডানদিকে অনুলিপি করুন।

T⊗ι⊗ι

ক্যানভাসকে একটি Lআকারের ট্রায়োমিনোতে নামিয়ে ফেলুন ।

‖OO→↓ι

পুনরাবৃত্তিটি সম্পূর্ণ করে, ওভারল্যাপের সাথে অনুভূমিকভাবে এবং উলম্বভাবে ক্যানভাসকে প্রতিফলিত করুন।

চারকোল অন্যের চেয়ে কিছু ফ্র্যাক্টালগুলিতে ভাল। এখানে একটি অনুরূপ ধারণা, তবে প্রায় অর্ধেক আকারে:

HFN«⟲C²⁶‖OOLX³ι

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ।


4

পাইথন 2 , 143 বাইট

def g(a,x,y,s):
	if s:s/=3;[g(a,x+k/3*s,y+k%3*s,s)for k in 0,2,3,4,5,6,8]
	else:a[x][y]=1
def f(s):s=3**s;a=eval("s*[0],"*s);g(a,0,0,s);print a

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

-30 বাইট রিকার্সি ধন্যবাদ

মোড়কের কোডটি দুর্দান্ত ফর্ম্যাটের জন্য। এটি সরিয়ে ফেললে এটি ঠিক কাজ করে



4

পিএইচপি 7, 125 109 বাইট

একটি ভিন্ন পদ্ধতির: পাখির এবং যাও recursively ফলাফলের সমরূপতার পরিবর্তে এই মাত্র সারি এবং কলাম মাধ্যমে loops এবং মুদ্রণ যদি খুঁজে বের করতে 3 য় লুপ ব্যবহার Hবা _

সম্পাদনা করুন: সারি / কলামের লুপগুলিকে এক সাথে সংযুক্ত করে অনেকগুলি সংরক্ষণ করা হয়েছে, যদিও অভ্যন্তরীণ লুপটির সঠিকতা হ্রাস পেতে কিছুটা সময় নিয়েছে। পাওয়ার অপারেটরের জন্য পিএইচপি 7 প্রয়োজন।

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


for($z=3**$argn;$z*$z>$q=$p;print$c."
"[++$p%$z])for($c=H;$q;$q-=$q/$z%3*$z,$q/=3)if($q%3==1&&$q/$z%3-1)$c=_;

ফলাফল মুদ্রণ। পাইপ হিসাবে চালান -nR

যোগ্য ফাংশন, 147 130 বাইট

function r($n){for($z=3**$n;$z*$z>$q=$p;$r.=$c."
"[++$p%$z])for($c=H;$q;$q-=$q/$z%3*$z,$q/=3)if($q%3==1&&$q/$z%3-1)$c=_;return$r;}

একটি একক স্ট্রিং প্রদান করে। ডিফল্ট কনফিগারেশন দিয়ে চালান (না php.ini)।


1
%3==1সঙ্গে প্রতিস্থাপন করা যেতে পারে %3&1
প্রিমো

3

জেলি , 25 বাইট

,’b3U×"3S_4A1e
3*çþ`ị⁾ HY

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


যদিও এটি বিদ্যমান জেলি জমা দেওয়ার চেয়ে বেশি দীর্ঘ , এটি স্থানাঙ্ক থেকে প্রতিটি অক্ষরকে স্বাধীনভাবে উত্পন্ন করার চেষ্টা করে।

বিশেষ করে, যদি তুল্য হয় (x,y)(1-ইন্ডেক্স), প্রথম লিংক আয় 0এবং 1অনুরূপ Hএবং যথাক্রমে।


,                Pair. Get (x,y)
 ’               Decrement. Get (x,y) (0-indexing)
  b3             Convert to base 3 digits.
    U            Upend. So next operations can pair the corresponding digits.
     ×"3         Multiply the first element (list) by 3.
        S        Sum (corresponding digit together). Let the sum be s.
         _4A1e   Check if any of abs(s-4) is 1. Equivalently, check
                 if there is any 3 or 5 in the list of s.

এছাড়াও, 5 বাইট ị⁾ HYবিন্যাসের জন্য ব্যবহৃত হয়, সুতরাং এই প্রোগ্রাম (20 বাইট) এছাড়াও বৈধ (তবে আউটপুটটি দেখতে সুন্দর দেখাচ্ছে না):

,’b3U×"3S_4A1e
3*çþ`

3

টি-এসকিউএল , 267 261 বাইট

DECLARE @N INT=3DECLARE @ TABLE(I INT,H VARCHAR(MAX))INSERT @ VALUES(1,'H H'),(2,'HHH'),(3,'H H');WITH
T AS(SELECT 1 A,3 P,I J,H S FROM @ UNION ALL SELECT A+1,P*3,J*P+I,REPLACE(REPLACE(S,' ','   '),'H',H)FROM @,T
WHERE A<@N)SELECT S FROM T WHERE A=@N ORDER BY J

কোড গল্ফ এ এটি আমার প্রথম উত্তর, সুতরাং আমি যদি কোনও ভুল করে থাকি তবে দয়া করে আমাকে সহায়তা করুন। এছাড়াও, আমার পছন্দের ভাষা হ'ল ট্রানজ্যাক্ট-এসকিউএল, যা সংক্ষিপ্ত কোডের জন্য খুব উপযুক্ত নয়।
রাজ্জান সোসোল

1
পিপিসিজিতে আপনাকে স্বাগতম এবং প্রথম প্রথম পোস্ট! টি-এসকিউএল এ গল্ফিং সম্পর্কে টিপসের জন্য, এই পোস্টটি পরীক্ষা করে দেখুন !
সিয়ার্ড কোইনারিংহিংহিং

আমি একটি স্ক্যালফিল্ড যুক্ত করার চেষ্টা করেছি, তবে এটি টেবিলের ভেরিয়েবলগুলির সাথে ভালভাবে কাজ করে না। আমি যদি সাধারণ টেবিলগুলি ব্যবহার করি তবে এটি 1 বাইট আরও খাটো: sqlfiddle.com/#!18/eb14e/2 । যাইহোক, আউটপুটটি স্ক্লোফিল্ড দ্বারা সঠিকভাবে ফর্ম্যাট করা হয়নি তবে এটি এসএসএমএসে সূক্ষ্মভাবে কাজ করে।
রাজ্জান সোসোল

1
আপনি কিছু অপ্রয়োজনীয়
শ্বেতস্থান

আমি কেবল 261 তে পেয়েছি I আমি কী অনুপস্থিত?
রাজাওয়ান সোসোল


2

পার্ল, 64 বাইট

//;$_ x=3,$.=s|.+|$&@{[$$_++/$.&1?$&:$"x$.]}$&|g for($_=H.$/)x$'

প্রয়োজনীয় -p, ইনপুট স্টিডিন থেকে নেওয়া হয়। আউটপুট Hগুলি একটি এইচ ।

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


এই সাইটে গণনা পরিবর্তিত হয়েছে, আপনাকে -pআর গণনা করার দরকার নেই (আমি মনে করি এটি
পার্লের

2

পিএইচপি (5.6+), 94 বাইট

<?for(;$H>$e*=3or$e=($i+=$e&&print"$s
")<${$s=H}=3**$argn;)$s.=str_pad($i/$e%3&1?$s:'',$e).$s;

নিয়ে ব্যবহৃত -Fকমান্ড লাইন বিকল্প। দোভাষী ডিফল্ট ( -n) ধরে নেয়। পাওয়ার অপারেটরের কারণে 5.6 এর আগের সংস্করণগুলিতে কাজ করবে না।

নমুনা ব্যবহার

$ echo 3|php -nF h-carpet.php
H H   H H         H H   H H
HHH   HHH         HHH   HHH
H H   H H         H H   H H
H HH HH H         H HH HH H
HHHHHHHHH         HHHHHHHHH
H HH HH H         H HH HH H
H H   H H         H H   H H
HHH   HHH         HHH   HHH
H H   H H         H H   H H
H H   H HH H   H HH H   H H
HHH   HHHHHH   HHHHHH   HHH
H H   H HH H   H HH H   H H
H HH HH HH HH HH HH HH HH H
HHHHHHHHHHHHHHHHHHHHHHHHHHH
H HH HH HH HH HH HH HH HH H
H H   H HH H   H HH H   H H
HHH   HHHHHH   HHHHHH   HHH
H H   H HH H   H HH H   H H
H H   H H         H H   H H
HHH   HHH         HHH   HHH
H H   H H         H H   H H
H HH HH H         H HH HH H
HHHHHHHHH         HHHHHHHHH
H HH HH H         H HH HH H
H H   H H         H H   H H
HHH   HHH         HHH   HHH
H H   H H         H H   H H

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


1
আপনি একটি বাইট সংরক্ষণ করতে পারেন: $s.$s.$sপরিবর্তে $s.=$s.$s। আর তুমি প্রয়োজন চি <?সঙ্গে -Rপরিবর্তে -F
তিতাস

বাইট জন্য ধন্যবাদ। সম্পর্কিত -R, আপনি আমাকে সম্পূর্ণ ব্যবহার দেখাতে পারেন?
প্রিমো

ঠিক -nF: echo <input> | php -nR '<code>'-rপ্রায় একই হল: php -nr '<code>' <arguments>
তিতাস

এটির কাজটি পেতে আমি খুব বোকা: / i.stack.imgur.com/jqpmk.png
প্রিমো

1
preg_filterনতুন লাইনের সংরক্ষণের সময় প্রতিটি লাইনের পুনরাবৃত্তি হ'ল প্রায় সমান join("\n",array_map(function(){...},split("\n",$s.$s.$s))), তবে উল্লেখযোগ্যভাবে কম ভার্বোস। আমি প্রথম দিকে str_padপরিবর্তিত হয়েছি sprintfকারণ এটি এক বাইট ছোট ছিল:'"\0".str_pad($$i++/$i&1?"\0":"",$i)."\0"'
প্রাইমো

1

সিজেম - 103 97 87 76 বাইট

{H{ae_,S*}%}:Il~a:A];{A_W={)(a9*+:A;[[HIH][HHH][HIH]]{z~}%}{);:A;"H"}?}:H~N*

এই প্রোগ্রামটি বেশ ভার্জোজ "হ্যান্ডকোডযুক্ত" পুনরাবৃত্তি করে। কোনও স্মার্ট ম্যাট্রিক্স গুণ নেই। পুনরাবৃত্তি জুড়ে, স্ট্যাকের উপরে একটি অ্যারে সংগ্রহ করা হয় পিতামাতার কলগুলি থেকে প্রাপ্ত আউটপুট। প্রোগ্রামের শেষে স্ট্যাক যখন রৈখিকভাবে প্রিন্ট করা হয় তখন আউটপুটটি সঠিক কিনা তা নিশ্চিত করার জন্য প্রতিটি সেট পুনরাবৃত্তির কলগুলির ঠিক পরে, পুনরাবৃত্ত কলগুলির আউটপুট একসাথে জিপ করা দরকার। পুনরাবৃত্তির মাধ্যমে আর্গুমেন্টের স্ট্যাকটি ভেরিয়েবলের মধ্যে রাখা হয় A

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



1

জাপট , 23 বাইট

_·£[X³XX³]Ãy c ·û}gQq)y

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

আনপ্যাকড এবং কীভাবে এটি কাজ করে

Z{ZqR mXYZ{[Xp3 XXp3]} y c qR û}gQq)y

Z{    Declare a function that accepts a string...
  ZqR   Split by newline...
  mXYZ{   and map each row into...
    [Xp3 XXp3]  an array of [X.repeat(3), X, X.repeat(3)]
  }
  y   Transpose the resulting 2D array
  c   Flatten
  qR  Join with newline
  û   Center-pad each row to the longest
}
gQq)  Apply the above function to '"' recursively
y     Transpose the resulting 2D string

ট্রান্সপোজড প্যাটার্ন ব্যবহার করে

III
 I 
III

আসল Hপ্যাটার্নের চেয়ে হ্যান্ডেল করা অনেক সহজ , কমপক্ষে জাপটে যেখানে Iস্ট্রিং রিপিট এবং সেন্টার-প্যাডিংয়ের সাহায্যে করা যায়।


0

সি ++ 11 - 138 বাইট

নিশ্চিত না যদিও এই উত্তরটির এখানে বৈধ বাক্য গঠন আছে কিনা।

#define A a?1:0
template<int N>struct H{H<N-1>h[9];H(int a):h{A,0,A,A,A,A,A,0,A}{}};template<>struct H<0>{char h;H(int a):h{a?'H':' '}{}};

ওয়ার্কিং কোড দিয়ে অসম্পূর্ণ

#include <iostream>

#define A a?1:0

template<int N>
struct H
{
  H<N-1> h[9];

  H(int a) : h{A,0,A,A,A,A,A,0,A}
  {}
};

template<>
struct H<0>
{
  char h;

  H(int a) : h{a?'H':' '}
  {}
};

int pow(int a, int b)
{
  int res=1;

  for (int i=1; i<=b; ++i)
    res *= a;

  return res;
}

template<int N>
char getHvalue(int i, int j, H<N> &hn)
{
  int n3=pow(3, N-1);

//std::cout << N << " " << i << " " << j << std::endl;

  return getHvalue(i%n3, j%n3, hn.h[i/n3*3+j/n3]);
}

template<>
char getHvalue<0>(int, int, H<0> &hn)
{
  return hn.h;
}

int main()
{
  H<0> h0(1);

  std::cout << getHvalue(0, 0, h0) << std::endl;

  std::cout << "\n====================\n" << std::endl;

  H<1> h1(1);

  for (int i=0; i<3; ++i) {
    for (int j=0; j<3; ++j)
      std::cout << getHvalue(i, j, h1);
    std::cout << std::endl;
  }

  std::cout << "\n====================\n" << std::endl;

  H<2> h2(1);

  for (int i=0; i<9; ++i) {
    for (int j=0; j<9; ++j)
      std::cout << getHvalue(i, j, h2);
    std::cout << std::endl;
  }

  std::cout << "\n====================\n" << std::endl;

  H<3> h3(1);

  for (int i=0; i<27; ++i) {
    for (int j=0; j<27; ++j)
      std::cout << getHvalue(i, j, h3);
    std::cout << std::endl;
  }

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