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


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.