সহজ বাইনারি ত্রিভুজ


18

ইতিবাচক পূর্ণসংখ্য হিসাবে ইনপুট হিসাবে দেওয়া হয় n>=1, nনিম্নলিখিত ত্রিভুজটির প্রথম সারি আউটপুট করুন :

                  1
                1 0 1
              0 0 1 0 0
            1 1 1 0 1 1 1
          0 0 0 0 1 0 0 0 0
        1 1 1 1 1 0 1 1 1 1 1
      0 0 0 0 0 0 1 0 0 0 0 0 0
    1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
  0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1

কেন্দ্রের কলামটি বাদ দিয়ে সমস্ত শূন্য এবং সকলের মধ্যে বিকল্প সারিগুলি উল্টে যায়।

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

  • ইনপুট :3

  • আউটপুট :

        1
      1 0 1
    0 0 1 0 0
    
  • ইনপুট :10

  • আউটপুট :

                      1
                    1 0 1
                  0 0 1 0 0
                1 1 1 0 1 1 1
              0 0 0 0 1 0 0 0 0
            1 1 1 1 1 0 1 1 1 1 1
          0 0 0 0 0 0 1 0 0 0 0 0 0
        1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
      0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
    1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
    

আপনার কোড অবশ্যই কারও জন্য কাজ করবে n<100। এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়!

ট্রেলিং স্পেস / নিউলাইন এবং শীর্ষস্থানীয় নিউলাইনগুলি অনুমোদিত!


অতিরিক্ত সাদা স্থান গ্রহণযোগ্য এবং যদি তাই হয় তবে কোনটি (অগ্রণী লাইন / শীর্ষস্থানীয় / অনুসরণ / প্রশিক্ষণ লাইন)?
— জোনাথন অ্যালান

1
আমরা সংখ্যার তালিকার এএ তালিকা ফিরিয়ে দিতে পারি?
— এরিক দ্য আউটগল্ফার

8
@ এরিকথ আউটগল্ফার তালিকাগুলির তালিকা ঠিক আছে!

1
যেহেতু তালিকার একটি তালিকা ঠিক আছে, তাই আমি ধরে নিচ্ছি যে কেন্দ্রিক প্রান্তিককরণের প্রয়োজন নেই, তাই না?
— লুইস মেন্ডো

1
এটি আপনার চ্যালেঞ্জ, তবে আমার মতে আপনি যদি তালিকার তালিকাকে অনুমতি দেওয়ার মতো যথেষ্ট নমনীয় হন তবে বিন্যাসের সাথে কঠোর হওয়ার কোনও মানে হয় না
— লুইস মেন্ডো

উত্তর:


7

জেলি , 7 বাইট

Ṭ=Ḃµ€ŒB

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

-1 বাইট ধন্যবাদ আউটগলফার এরিককে ধন্যবাদ

ব্যাখ্যা

Ṭ=Ḃµ€ŒB  Main link
    €    For each element in (implicit range of) the input:
Ṭ        List 1s and 0s with 1s in the indices in the left argument (generates `[0, 0, ..., 1]`)
 =Ḃ      Is this equal to `(z % 2)` where `z` is the range number? (Every other row is flipped)
     ŒB  Reflect each row

আপনি প্রতিস্থাপন করতে পারেন ¶Çসঙ্গে µজন্য -1।
— এরিক দি আউটগলফার 13:58

@ এরিখিওটগল্ফার ওহ ধন্যবাদ!
— হাইপারনিউট্রিনো

4

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

lambda n:[i*`i%2`+`~i%2`+i*`i%2`for i in range(n)]

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

এটি স্ট্রিংগুলির তালিকা হিসাবে সারিগুলি প্রদান করে।

পাইথন 2 , 67 65 63 বাইট (ফর্ম্যাট)

n=input()
for i in range(n):k=i*`i%2`;print(n-i)*" "+k+`~i%2`+k

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

প্রতিটি লাইনে একটি পিছনের স্থান সহ এটি আউটপুট দেয়।


3

ওহ গম্ভীরভাবে .... দ্বিতীয় নিনজাদকে বিভক্ত করুন: পি
— জোনাথন অ্যালান

@ জোনাথান অ্যালান এটি সত্যিই একটি নিয়ম পরিবর্তন ছিল ... বিটিডব্লু আমি মনে করি এটি খুব গল্ফযোগ্য ...
— এরিক দ্য আউটগল্ফার

হ্যাঁ আমার একটি 15 বাইট গ্রিড ছিল তখন 10 বাইট তালিকা ...
— জোনাথন অ্যালান


¬^Ḃহয়ে উঠতে পারে =Ḃকারণ NOT (XOR (A B))কেবলমাত্র দৃশ্যত IFF (A B) সম্পাদনা করার জন্য আমি আমার চেয়ে বেশি গল্ফ করেছিল যেহেতু আমি ও_ও লোল ছিলাম
— হাইপারনিউটারিনো

3

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

lambda n:[[i%2]*i+[~i%2]+i*[i%2]for i in range(n)]

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

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

lambda n:[(([i%2]*i+[~i%2])*2)[:-1]for i in range(n)]

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

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

lambda n:[[[i%2,~i%2][j==i]for j in range(2*i+1)]for i in range(n)]

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


2
হা হা, এখন আমরা বাঁধা :)
— মিঃ এক্সকডার

65 বাইট (দীর্ঘতর একটির জন্য)
— মিঃ এক্সকোডার

3

জাপট , 12 9 বাইট

õÈÇ¥Y^uÃê

এটি অনলাইন পরীক্ষা!

জেলির তুলনায় বেশ খানিকটা দু: খিত, তবে জ্যাপের মতো কিছু নেই Ṭতাই আমার যা আছে তা দিয়ে আমার অবশ্যই করা উচিত ...

ব্যাখ্যা

 õÈ   Ç   ¥ Y^ uà ê
UõXY{XoZ{Z==Y^Yu} ê}      Ungolfed
                          Implicit: U = input number
Uõ                        Create the range [1..U].    [1, 2, 3, 4]
  XY{              }      Map each item X and 0-index Y in this to
     Xo                     Create the range [0..X).  [[0], [0, 1], [0, 1, 2], [0, 1, 2, 3]]
       Z{      }            Map each item Z in this to
         Z==Y                 Z is equal to Y         [[1], [0, 1], [0, 0, 1], [0, 0, 0, 1]]
             ^Yu              XORed with Y % 2.       [[1], [1, 0], [0, 0, 1], [1, 1, 1, 0]]
                  ê         Bounce.                   [[1],
                                                       [1, 0, 1],
                                                       [0, 0, 1, 0, 0],
                                                       [1, 1, 1, 0, 1, 1, 1]]
                          Implicit: output result of last expression

বিল্টিনগুলির জন্য হুরয়: পি: পি: পি
— হাইপারনিউট্রিনো

ইয়া, কেউ পাইথন-জেলি-পাইথন-জেলি চেইনটি ভেঙে ফেলেছে!
— মিঃ এক্সকোডার

@ মিঃ এক্সকোডার যেখানে জেলি সত্যিই পাইথনে প্রয়োগ করা হয়েছে। : পি
— এরিক দি আউটগল্ফার

3

গণিত, 77 বাইট

Table[CellularAutomaton[51,{{1},0},#,{All,All}][[i]][[#-i+2;;-#+i-2]],{i,#}]&

@ গাছ নেই এটিকে 48 বাইটে গল্ফ করেছে না!

গণিত, 48 বাইট

#&@@@NestList[CellularAutomaton@51,{{1},0},#-1]&

হু আমি এটিকে সেলুলার অটোমেটা বিবেচনা করার কথা ভাবি নি। নিস!
— হাইপারনিউট্রিনো

2
একই জিনিস তবে গল্ফিয়ার:, #&@@@NestList[CellularAutomaton@51,{{1},0},#-1]&48 বাইট
— একটি গাছ নয়

3

পাইথ , 14 বাইট

2 জ্যাকেট বাঁচানোর জন্য @ জাকুবকে ধন্যবাদ!

ms_+Bm%d2d%hd2

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

পাইথ , 15 বাইট

-১ বাইটের জন্য জাকুবকে অনেক ধন্যবাদ

m++K*d]%d2%td2K

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

পাইথ , 16 বাইট

m++K*d`%d2`%td2K

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


]প্রথম কোডে দ্বিতীয়টি সরান ।
— জাকুব

@ জাকুব হ্যাঁ, ধন্যবাদ তালিকায় উপাদান সংযোজন করার জন্য অটো-লিস্টিফিকেশন সম্পর্কে ভুলে গেছেন।
— মিঃ এক্সকোডার

এবং এখানে একটি 14 বাইট সমাধান:ms_+Bm%d2d%hd2
— জাকুব

@ জাকুবে হ্যাঁ, আমি এখনই দ্বিখণ্ডনের কথা ভাবছিলাম, তবে আমি মোবাইলে থাকায় এটি করতে পারিনি। আবার অনেক অনেক ধন্যবাদ!
— মিঃ এক্সকডার

3

আর , 73 বাইট

জিউসেপকে ধন্যবাদ! আমার স্নাতকের.

n=scan();for(i in 1:n)cat(c(rep(" ",n-i),x<-rep(1-i%%2,i-1)),i%%2,x,"\n")

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

আর , 78 বাইট

n=scan();for(i in 1:n)cat(x<-c(rep(" ",n-i),rep(1-i%%2,i-1)),i%%2,rev(x),"\n")

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

আর , 82 বাইট

n=scan();for(i in 1:n){j=i%%2;x=c(rep(" ",n-i),rep(1-j,i-1));cat(x,j,rev(x),"\n")}

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

আর , 110 বাইট - স্ট্যান্ডআউট থেকে আউটপুট

m=matrix(x<-rep_len(0:1,n<-scan()),n,n-1);m[upper.tri(m,T)]=" ";for(i in 1:n)cat(rev(m[i,]),1-x[i],m[i,],"\n")

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

আর , 130 বাইট - একটি ফাইলে আউটপুট

m=matrix(x<-rep_len(0:1,n<-scan()),n,n-1);m[upper.tri(m,T)]=" ";for(i in 1:n)cat(rev(m[i,]),1-x[i],m[i,],"\n",file="a",append=i>1)

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

কোনও ফাইলকে লেখার জন্য যেমন আমি জানি না কীভাবে এটি কনসোলে ফিট করতে হয় n==99(ফলাফল এখানে দেখুন )।


2
আমি মনে করি না যে আপনার কনসোলটি বড় এন এর জন্য মোড়ানো সম্পর্কে চিন্তা করার দরকার আছে। ব্যক্তিগতভাবে আমি STDOUT এ আউটপুট সঠিক হওয়ায় ফাইল = "a" খনন করব।
— মিকিটি


1

পাস্কাল , 181 154 বাইট

27 বাইটস সংরক্ষণ করেছেন @ThePirateBay

procedure f(n:integer);var i,j:integer;begin for i:=1to n do begin write(' ':(n-i+1)*2);for j:=1to i*2-1do write((ord(j<>i)+i)mod 2,' ');writeln()end end;

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

Unglofed

procedure f (n: integer);
    var i, j: integer;
    begin
        for i := 1 to n do
        begin
            write(' ': (n-i+1) * 2);
            for j := 1 to i*2-1 do
                write((ord(j<>i) + i) mod 2, ' ')
            writeln()
        end
    end;


1

রেটিনা , 25 বাইট

.+
$*0
0
1$`¶
T`d`10`¶.*¶

এটি অনলাইন চেষ্টা করুন! ব্যাখ্যা: প্রথম পর্যায়ে ইনপুটটিকে সেই দৈর্ঘ্যের শূন্যের স্ট্রিংয়ে রূপান্তরিত করে। দ্বিতীয় পর্যায়ে তারপরে স্ট্রিংয়ের সমস্ত উপসর্গ (স্ট্রিং নিজেই অন্তর্ভুক্ত নয়) নেয় এবং তাদের কাছে 1 টি উপসর্গ করে। তৃতীয় স্তরটি বিকল্প লাইনে বিট টগল করে।


1

05 এ বি 1 ই , 24 21 18 বাইট

FNÉN×NÈJûIN>-úˆ}¯»

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


সম্পাদনা করুন: ঠিক আছে, এটি আমার প্রথম 05AB1E গল্ফ তাই আমি আশ্চর্য হই না যে জিনিসগুলি গল্ফ করা যায়। ইতিহাস সম্পাদনা করুন:

  • 18 (উপরে দেখুন)
    • তাই সেখানে হয় একটি ছেদ আয়না (উভয় .∞এবং û), যা আপ জিনিষ অনেক বাড়িয়ে
    • হিসাবে ÈএবংÉ , তৈরি 2%এবং 2%_অনেক খাটো
  • 21: FN2%DN×Dr_sJIN>-úˆ}¯»
    • অন্তর্ভুক্ত উপাদানগুলি সরানো হয়েছে: IF-> F, )J->J
    • baa(ঘোরানো) দ্বারাও করা aabযেতে পারে তবে (বিপরীত) (ছোট).Àr
  • 24: IFN2%DN×D.À_s)JIN>-úˆ}¯»





0

জাভাস্ক্রিপ্ট, 140 132 বাইট (সঠিক বিন্যাস সহ)

n=>{A=Array;a='';b=0;for(x of A(n)){for(c of A(n-b))a+=' ';for(c of A(b))a+=b%2;a+=(b+1)%2;for(c of A(b))a+=b%2;a+='\n';b++}return a}

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


যদি আপনি না জানতেন তবে আপনি A=Array8 টি বাইট সংরক্ষণ করতে ব্যবহার করতে পারেন ।

ভাল কথা, আমি এটি ভেবে দেখিনি
— ডেভিড বেইলি

এর মাধ্যমে আপনি কমপক্ষে আরও 3 বাইট সংরক্ষণ করতে পারেন: 1) এর পরিবর্তে A=Array;আপনি Aপ্রথম অ্যারে কল (যেমন। for(x of(A=Array)(n))) যা 1 বাইট সংরক্ষণ করে, ভেরিয়েবল শুরু করতে পারেন 2) '\n'আক্ষরিক নতুন লাইন (কবর উচ্চারণ ব্যবহার করুন) দিয়ে প্রতিস্থাপন করুন , 3) আপনি করবেন না মধ্যে প্রয়োজন প্রথম বন্ধনী (b+1)%2কারণ এটি সমতূল্য b+1&1।

0

জাভাস্ক্রিপ্ট (ES6) , 74 73 71 68 64 বাইট

@ নীল দ্বারা -7 বাইট

f=n=>n--?[...f(n), [...Array(n-~n)].map((v,i)=>(n+(i==n))%2)]:[]

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

সাধারণ পুনরাবৃত্তি ফাংশন যা একে একে রেখাগুলি উত্পন্ন করে। সংখ্যার অ্যারে হিসাবে আউটপুট।


ফর্ম্যাট স্ট্রিং হিসাবে আউটপুট:

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

f=(n,w=2*n+1,N=n,s=" ".repeat((N-n)*2))=>(--n?f(n,w,N)+s+[...Array(n-~n)].map((v,i)=>(n+(i==n))%2).join(" "):s+1)+"\n"

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


(n%2+(i==n))%2সরলীকরণ করা যেতে পারে (n+(i==n))%2।
— নীল

বা 1&n^i==nকাজ করতে পারে, কিন্তু আমি এটি পরীক্ষা করিনি।
— নীল

চেষ্টাও করুন n--?...:[]। (এবং আপনার ;কোড গল্ফের দরকার নেই ))
— নীল

2*n+1হতে পারে n-~n, তবে আমি কখনই নিশ্চিত মনে রাখতে পারি না।
— নিল

@ নীল ধন্যবাদ! আমি যেগুলি কাজ করতে পারি
— তারগুলি যুক্ত করা হয়েছে


0

জে, 32 বাইট

3 :'-.^:(2|y)(=|.)i.>:+:y'&.>@i.

এটি অনলাইন চেষ্টা করুন!এটি একটি বেনাম ফাংশন যা মানগুলির একটি বাক্সিত তালিকা প্রদান করে।

আমি কল্পনা করতে চাই যে সুস্পষ্ট ফাংশন সংজ্ঞা ক্যাপগুলি এবং এ জাতীয় অপসারণের গুণাবলী দ্বারা বাইট সংরক্ষণ করে, তবে এটি সম্ভবত একটি উত্তরের উত্তরের তুলনায় কয়েকটি বাইট যুক্ত করে।

ব্যাখ্যা

3 :'-.^:(2|y)(=|.)i.>:+:y'&.>@i.
                              i. For i = 0 ... input - 1
3 :'-.^:(2|y)(=|.)i.>:+:y'        Explicit function: compute nth row
                    >:+:y          2n+1
                  i.               Range [0,2n+1)
             (=|.)                 Equate range to reversed range
                                    (yield 0 0 0 ... 1 ... 0 0 0)
                                   If
                                    n = 1 (mod 2)
                                   Then
                                    Negate each value
                          &.>     Box


0

জে , 17 বাইট

(2&|~:0=i:)&.>@i.

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

বক্সযুক্ত অ্যারেগুলির একটি তালিকা আউটপুট করে।

ব্যাখ্যা

(2&|~:0=i:)&.>@i.  Input: n
               i.  Range from 0 to n, exclusive end
           & >     Unbox each and perform on each x
        i:           Range from -x to x, inclusive
      0=             Equal to 0
    ~:               Not equal
 2&|                 x mod 2
           &.>       Perform inverse of unbox (box)

0

জাভা 8, 121 111 109 101 বাইট

n->{String r[]=new String[n],t;for(int i=0,j;i<n;r[i++]=t+i%2+t)for(j=0,t="";j++<i;t+=i%2);return r;}

আমার বর্তমান বাইট-স্কোর (101) বাইনারি ত্রিভুজের একটি সারিও। :)

ব্যাখ্যা:

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

n->{                         // Method with integer parameter and String-array return-type
  String r[]=new String[n],  //  Result String-array
         t;                  //  Temp String
  for(int i=0,j;             //  Some index-integers
      i<n;                   //  Loop (1) from 0 to `n` (exclusive)
      r[i++]=                //    After every iteration, set the next row to:
        t+                   //     `t` +
        i%2                  //     Center digit (`i` has already been raised by 1 now)
        +t)                  //     + `t` again
    for(j=0,t="";            //   Reset index `j` and the temp-String `t`
        j++<i;               //   Inner loop (2) from 0 to `i` (exclusive)
      t+=i%2                 //    Append `t` with an outer digit
    );                       //   End of inner loop (2)
                             //  End of loop (1) (implicit / single-line body)
  return r;                  //  Return resulting String-array
}                            // End of method

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