পাস্কেলের ব্রেক তৈরি করুন


32

এটি পাস্কেলের বিনুনি:

 1 4  15  56   209   780    2911    10864     40545      151316      564719
1 3 11  41  153   571   2131    7953     29681     110771      413403      1542841
 1 4  15  56   209   780    2911    10864     40545      151316      564719

আমি সম্পূর্ণরূপে এটি আপ করা। আমি বলতে পারি ব্লেইস পাস্কেলের কাছে একটি বেণী ছিল না, এবং যদি তিনি এটি করেন তবে সম্ভবত এটি সংখ্যাগুলির পরিবর্তে চুল দিয়ে তৈরি হয়েছিল।

এটি এর মতো সংজ্ঞায়িত হয়েছে:

  1. প্রথম কলামটির 1মাঝখানে একটি একক রয়েছে।
  2. দ্বিতীয় কলামটির 1উপরে এবং নীচে একটি রয়েছে।
  3. এখন আমরা শীর্ষে এবং নীচে একটি সংখ্যার মাঝখানে বা দুটি অনুলিপি স্থাপনের মধ্যে বিকল্প।
  4. যদি সংখ্যাটি উপরে বা নীচে যায় তবে এটি দুটি সংলগ্ন সংখ্যার যোগফল হবে (উদাঃ 56 = 15 + 41)। আপনি যদি আপনার মাথাটি কিছুটা কাত করে থাকেন তবে এটি পাস্কালের ত্রিভুজটির এক ধাপের মতো।
  5. যদি সংখ্যাটি মাঝখানে যায় তবে এটি সংলগ্ন তিনটি সংখ্যার যোগফল (যেমন 41 = 15 + 11 + 15)।

আপনার কাজটি এই বিনুনিটি (কিছু অংশ) মুদ্রণ করা হবে।

ইনপুট

আপনার এমন একটি প্রোগ্রাম বা ফাংশন লিখতে হবে, যা একটি একক পূর্ণসংখ্যা পায় n, শেষ কলামের সূচকটিকে আউটপুট হিসাবে দেয়।

আপনি চয়ন কিনা সেটি প্রথম কলামটি (শুধুমাত্র মুদ্রণ একটি একক 1মধ্যম লাইনে) অনুরূপ n = 0বা n = 1। সমস্ত সম্ভাব্য ইনপুট জুড়ে এটি একটি সামঞ্জস্যপূর্ণ পছন্দ হতে হবে।

আউটপুট

আউটপুট পাস্কলের ব্রাইডটি nতম কলাম পর্যন্ত। শ্বেত স্পেসের উপরের উদাহরণ লেআউটের সাথে হুবহু মিল রাখতে হবে, আপনি খালি ফাঁকা লাইনের দৈর্ঘ্যে ছোট রেখা (গুলি) প্যাড করতে পারেন এবং আপনি বিকল্পভাবে একটি একক ট্রেলিং লাইনফিড আউটপুট দিতে পারেন।

অন্য কথায়, প্রতিটি কলামটি সেই কলামে সংখ্যার (বা সমান সংখ্যার জুড়ি) সমান বিস্তৃত হওয়া উচিত, ধারাবাহিক কলামগুলিতে সংখ্যাগুলি ওভারল্যাপ হওয়া উচিত নয় এবং কলামগুলির মধ্যে কোনও ফাঁকা স্থান থাকা উচিত নয়।

আপনি ফলাফলটি স্টুডউটে (বা নিকটতম বিকল্প) মুদ্রণ করতে পারেন, বা আপনি কোনও ফাংশন লিখলে আপনি একই বিষয়বস্তু সহ স্ট্রিং বা তিনটি স্ট্রিংয়ের তালিকা (প্রতিটি লাইনের জন্য একটি) ফিরিয়ে দিতে পারেন।

আরো বিস্তারিত বিবরণ

আপনি ধরে নিতে পারেন যে nপ্রথম কলামের সূচকের চেয়ে কম হবে না (তাই আপনার সূচকের চেয়ে কম 0বা 1নির্ভর করে না )। আপনি এও ধরে নিতে পারেন যে বেটির শেষ সংখ্যাটি 256 এর চেয়ে কম বা আপনার ভাষার নেটিভ পূর্ণসংখ্যার প্রকারের মধ্যে সবচেয়ে বড় সংখ্যাটি যেকোন বৃহত্তর । তাই আপনি যদি আপনার স্থানীয় পূর্ণসংখ্যা টাইপ শুধুমাত্র বাইট সংরক্ষণ করতে পারেন, আপনি অনুমান করতে পারেন বৃহত্তম nহয় 9বা 10(ভিত্তিক 1 আপনি 0- বা ব্যবহার কিনা তার উপর নির্ভর করে n) এবং যদি এটা স্বাক্ষরিত সংরক্ষণ করতে পারেন 32 বিট ইন্টিজার, nসবচেয়ে হতে হবে 33বা 34

স্ট্যান্ডার্ড বিধি প্রযোজ্য। সংক্ষিপ্ততম কোডটি জয়ী।

OEIS

এখানে কয়েকটি প্রাসঙ্গিক ওইআইএস লিঙ্ক রয়েছে। অবশ্যই, এগুলিতে নথীর সংখ্যা তৈরির বিভিন্ন উপায়ে স্পোলার রয়েছে:

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

এই পরীক্ষার ক্ষেত্রে 1-বেস সূচক ব্যবহার করা হয়। প্রতিটি পরীক্ষার ক্ষেত্রে চারটি লাইন থাকে, প্রথমটি ইনপুট এবং বাকী তিনটি আউটপুট থাকে।

1

1

---
2
 1
1
 1
---
3
 1
1 3
 1
---
5
 1 4
1 3 11
 1 4
---
10
 1 4  15  56   209
1 3 11  41  153
 1 4  15  56   209
---
15
 1 4  15  56   209   780    2911
1 3 11  41  153   571   2131    7953
 1 4  15  56   209   780    2911
---
24
 1 4  15  56   209   780    2911    10864     40545      151316      564719       2107560
1 3 11  41  153   571   2131    7953     29681     110771      413403      1542841
 1 4  15  56   209   780    2911    10864     40545      151316      564719       2107560

ফর্ম্যাটটি আমার কাছে কিছুটা গিরগিটির মতো মনে হচ্ছে।
লিকি নুন

3
@ ল্যাকইনুন আমি এই চ্যালেঞ্জটি স্যান্ডবক্সে থাকাকালীন চেষ্টা করেছিলাম, এবং প্রবন্ধটি প্রিন্ট করার সাথে সাথে গণনা করতে প্রায় অর্ধেক বাইট ব্যয় করেছি। এশিয়া-আর্ট চ্যালেঞ্জের জন্য এটি আমার কাছে একটি দুর্দান্ত ভারসাম্য বলে মনে হচ্ছে ।
FryAmTheEggman 15

4
@ ল্যাকইনুন আমি আশা করছিলাম যে সিক্যুয়েন্স প্রজন্ম এবং এএসসিআইআই শিল্প উভয়ই চ্যালেঞ্জের গুরুত্বপূর্ণ উপাদান, কারণ বেশিরভাগ ভাষাগুলি সম্ভবত এই দুটির একটির মধ্যে আরও ভাল হবে, তাই আমি বুঝতে পেরেছিলাম যে তাদের মিশ্রণটি আকর্ষণীয় হবে। এবং এটি একটি অতিরিক্ত উপাদান প্রবর্তন করে যেখানে শীর্ষ / নীচে এবং মাঝখানে পৃথকভাবে উত্পন্ন করা বা সম্পূর্ণ জিনিস উত্পন্ন করা এবং তারপরে বাইসিকেশনগুলি পৃথক করা ভাল কিনা তা পরিষ্কার নয়।
মার্টিন ইন্ডার


পাস্কলে এখনও কেউ সমাধান সমাধান করেনি। এটা আমাকে দুঃখিত করেছে.
ডাইনামাইট্রাইড

উত্তর:


5

জেলি , 31 30 29 বাইট

Q;S⁹o_
3ḶḂç@⁸СIµa"Ṿ€o⁶z⁶Zµ€Z

এটি একটি monadic লিঙ্ক; এটি 0-ভিত্তিক কলাম সূচকে আর্গুমেন্ট হিসাবে গ্রহণ করে এবং স্ট্রিংগুলির একটি তালিকা প্রদান করে।

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

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

Q;S⁹o_                  Helper link.
                        Arguments: [k, 0, k] and [0, m, 0] (any order)

Q                       Unique; deduplicate the left argument.
 ;                      Concatenate the result with the right argument.
  S                     Take the sum of the resulting array.
   ⁹o                   Logical OR with the right argument; replaces zeroes in the
                        right argument with the sum.
     _                  Subtract; take the difference with the right argument to
                        remove its values.
                        This maps [k, 0, k], [0, m, 0] to [0, k + m, 0] and
                        [0, m, 0], [k, 0, k] to [m + 2k, 0, m + 2k].


3ḶḂç@⁸СIµa"Ṿ€o⁶z⁶Zµ€Z  Monadic link. Argument: A (array of column indices)

3Ḷ                      Yield [0, 1, 2].
  Ḃ                     Bit; yield [0, 1, 0].
        I               Increments of n; yield [].
      С                Apply...
   ç@                       the helper link with swapped arguments...
     ⁸                      n times, updating the left argument with the return
                            value, and the right argument with the previous value
                            of the left one. Collect all intermediate values of
                            the left argument in an array.
         µ         µ€   Map the chain in between over the intermediate values.
            Ṿ€          Uneval each; turn all integers into strings.
          a"            Vectorized logical AND; replace non-zero integers with
                        their string representation.
              o⁶        Logical OR with space; replace zeroes with spaces.
                z⁶      Zip with fill value space; transpose the resulting 2D
                        array after inserting spaces to make it rectangular.
                  Z     Zip; transpose the result to restore the original shape.
                     Z  Zip; transpose the resulting 3D array.

12

পাইথ , 44 বাইট

সংখ্যার প্রজন্মটি 20 বাইট নিয়েছে এবং ফর্ম্যাটিংটিতে 24 বাইট লেগেছে।

jsMC+Led.e.<bkC,J<s.u+B+hNyeNeNQ,1 1Qm*;l`dJ

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

jsMC+Led.e.<bkC,J<s.u+B+hNyeNeNQ,1 1Qm*;l`dJ   input as Q
                   .u          Q,1 1           repeat Q times, starting with [1,1],
                                               collecting all intermediate results,
                                               current value as N:
                                               (this will generate
                                                more than enough terms)
                       +hNyeN                  temp <- N[0] + 2*N[-1]
                     +B      eN                temp <- [temp+N[-1], temp]

now, we would have generated [[1, 1], [3, 4], [11, 15], [41, 56], ...]

jsMC+Led.e.<bkC,J<s                 Qm*;l`dJ
                  s                            flatten
                 <                  Q          first Q items
                J                              store in J
                                     m    dJ   for each item in J:
                                         `     convert to string
                                        l      length
                                      *;       repeat " " that many times

jsMC+Led.e.<bkC,
              C,     transpose, yielding:
[[1, ' '], [1, ' '], [3, ' '], [4, ' '], [11, '  '], ...]
(each element with as many spaces as its length.)
        .e            for each sub-array (index as k, sub-array as b):
          .<bk            rotate b as many times as k

[[1, ' '], [' ', 1], [3, ' '], [' ', 4], [11, '  '], ...]

jsMC+Led
    +Led              add to each sub-array on the left, the end of each sub-array
   C                  transpose
 sM                   sum of each sub-array (reduced concatenation)
j                     join by new-lines

7
এটি এখন পর্যন্ত সবচেয়ে বড় পাইথ প্রোগ্রাম।
21


7

এমএটিএল , 38 বাইট

1ti:"yy@oQ*+]vG:)!"@Vt~oX@o?w]&v]&hZ}y

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

(অনন্য) সংখ্যার সাথে একটি অ্যারের গণনা করতে প্রথম 17 বাইট লাগে। ফর্ম্যাট করতে বাকি 21 বাইট লাগে।

ব্যাখ্যা

পর্ব 1: সংখ্যা উত্পন্ন

এই আদেশ বেড়ে যাওয়ার ক্ষেত্রে প্রথম ও দ্বিতীয় সারি থেকে সংখ্যার একটি অ্যারের উত্পন্ন: [1; 1; 3; 4; 11; 15; ...]। এটা তোলে দিয়ে শুরু হয় 1, 1। প্রতিটি নতুন সংখ্যা পূর্ববর্তী দুটি থেকে পুনরাবৃত্তভাবে প্রাপ্ত হয়। এর মধ্যে, দ্বিতীয়টি পুনরাবৃত্তি সূচকটির উপর নির্ভর করে 1বা তার দ্বারা গুণিত হয় 2এবং তারপরে নতুন সংখ্যার উত্পাদনের জন্য প্রথমটিতে সংমিশ্রণ করা হয়।

পুনরাবৃত্তির সংখ্যা ইনপুট সমান n। এর অর্থ n+2সংখ্যাটি উত্পন্ন হয়। একবার উত্পন্ন হওয়ার পরে অ্যারেটি ছাঁটাই করা দরকার তাই কেবল প্রথম nএন্ট্রি রাখা হয়।

1t      % Push 1 twice
i:      % Take input n. Generage array [1 2 ... n]
"       % For each
  yy    %   Duplicate the two most recent numbers
  @o    %   Parity of the iteration index (0 or 1)
  Q     %   Add 1: gives 1 for even iteration index, 2 for odd
  *+    %   Multiply this 1 or 2 by the most recent number in the sequence, and add
       %    to the second most recent. This produces a new number in the sequence
]       % End for each
v       % Concatenate all numbers in a vertical array
G:)     % Keep only the first n entries

পার্ট 2: আউটপুট ফর্ম্যাট করুন

প্রাপ্ত অ্যারেতে প্রতিটি সংখ্যার জন্য, এটি দুটি স্ট্রিং উত্পন্ন করে: সংখ্যার স্ট্রিং প্রতিনিধিত্ব এবং একই দৈর্ঘ্যের একটি স্ট্রিং 0 টি পুনরাবৃত্তি দ্বারা গঠিত (অক্ষর 0 এমএটিএল-তে একটি স্থান হিসাবে প্রদর্শিত হয়)। এমনকি পুনরাবৃত্তির জন্য, এই দুটি স্ট্রিং অদলবদল করা হয়।

দুটি স্ট্রিং উল্লম্বভাবে সংক্ষিপ্ত করা হয়। সুতরাং n2D চর অ্যারে নিম্নলিখিত হিসাবে উত্পাদিত হয় ( ·0 টি চরিত্র উপস্থাপন করে ):

·
1

1
·

· 
3

4
·

·· 
11

15
··

এই অ্যারেগুলি উত্পাদন করতে আনুভূমিকভাবে সঙ্কুচিত হয়

·1·4··15
1·3·11··

অবশেষে, এই 2 ডি চর অ্যারেটিকে তার দুটি সারিতে বিভক্ত করা হয়েছে এবং প্রথমটি স্ট্যাকের শীর্ষে নকল করা হয়েছে। তিনটি স্ট্রিং প্রতিটি পৃথক লাইনে প্রদর্শিত হয়, যার ফলে কাঙ্ক্ষিত আউটপুট তৈরি হয়

!       % Transpose into a horizontal array [1 1 3 4 11 15 ...]
"       % For each
  @V    %   Push current number and convert to string
  t~o   %   Duplicate, negate, convert to double: string of the same length consisting 
        %   of character 0 repeated
  X@o   %   Parity of the iteration index (1 or 0)
  ?     %   If index is odd
    w   %     Swap
  ]     %   End if
  &v    %   Concatenate the two strings vertically. Gives a 2D char array representing
        %   a "numeric column" of the output (actually several columns of characters)
]       % End for
&h      % Concatenate all 2D char arrays horizontally. Gives a 2D char array with the
        % top two rows of the output
Z}      % Split this array into its two rows
y       % Push a copy of the first row. Implicitly display

6

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

a=1:1:t
t=3:4:zipWith((-).(4*))t a
g(i,x)=min(cycle" 9"!!i)<$>show x
f n=[zip[y..y+n]a>>=g|y<-[0..2]]

একটি ফাংশন সংজ্ঞা দেয় f :: Int → [String]

  • মাইকেল ক্লেইন আমাকে মনে করিয়ে দিয়েছিল যে আমাকে unlines7 বাইট সংরক্ষণ করে ফলাফলটি কল করার দরকার নেই । ধন্যবাদ!

  • আমি প্রতিস্থাপন দ্বারা একটি বাইট সংরক্ষিত " 9"!!mod i 2সঙ্গে cycle" 9"!!i

  • ব্যবহারের পরিবর্তে দুটি কর্সারসিভ তালিকা লিখে আরও তিনটি বাইট drop

  • আমার গার্লফ্রেন্ড ইঙ্গিত করে আমি এর 0পরিবর্তে আমার উত্তর শুরু করে আরও দুটি বাইট সঞ্চয় করতে পারি 1


3

সি, 183 177 176 বাইট

#define F for(i=0;i<c;i++)
int i,c,a[35],t[9];p(r){F printf("%*s",sprintf(t,"%d",a[i]),r-i&1?t:" ");putchar(10);}b(n){c=n;F a[i]=i<2?1:a[i-2]+a[i-1]*(i&1?1:2);p(0);p(1);p(0);}

ব্যাখ্যা

সি কখনও উচ্চ স্তরের ভাষার বিরুদ্ধে ব্রেভিটির জন্য কোনও পুরস্কার জিততে পারে না, তবে অনুশীলনটি আকর্ষণীয় এবং ভাল অনুশীলন।

ম্যাক্রো এফ পাঠযোগ্যতার ব্যয়ে ছয়টি বাইট বন্ধ করে দেয়। একাধিক ঘোষণা এড়াতে বৈকল্পিকগুলি বিশ্বব্যাপী ঘোষণা করা হয়। স্প্রিন্টফের জন্য আমার একটি ক্যারেক্টার বাফার দরকার ছিল, তবে যেহেতু কেঅ্যান্ডআর টাইপ চেকিংয়ের সাথে শিথিল, স্প্রিন্টফ এবং প্রিন্টফ টি [9] কে 36-বাইট বাফারের পয়েন্টার হিসাবে ব্যাখ্যা করতে পারে। এটি একটি পৃথক ঘোষণা সংরক্ষণ করে।

#define F for(i=0;i<c;i++)
int i,c,a[35],t[9];

সুন্দর মুদ্রণ ফাংশন, যেখানে r হল সারি সংখ্যা। স্প্রিন্টফ সংখ্যার ফর্ম্যাট করে এবং কলামের প্রস্থকে গণনা করে। স্থান বাঁচাতে আমরা এটিকে কেবল তিনবার কল করি, প্রতিটি সারি আউটপুটের জন্য একটি; এক্সপ্রেশন রি এবং কী মুদ্রণযোগ্য তা ফিল্টার করে।

p(r) {
    F
        printf("%*s", sprintf(t, "%d", a[i]), r-i&1 ? t
                                                    : " ");
    putchar(10);
}

এন্ট্রি পয়েন্ট ফাংশন, আর্গুমেন্টটি কলামের সংখ্যা। একটি কলামের অ্যারে গণনা করে একটি []], তারপরে প্রতিটি আউটপুটের জন্য একবার মুদ্রণ ফাংশন পি কল করে।

b(n) {
    c=n;
    F
        a[i] = i<2 ? 1
                   : a[i-2] + a[i-1]*(i&1 ? 1
                                          : 2);
    p(0);
    p(1);
    p(0);
}

নমুনা প্রার্থনা (উত্তর এবং বাইট গণনা অন্তর্ভুক্ত নয়):

main(c,v) char**v;
{
    b(atoi(v[1]));
}

আপডেট করা হয়েছে

টমসমেডিং থেকে ইনলাইন স্প্রিন্টফ পরামর্শ অন্তর্ভুক্ত। এটি গণনাটি 183 থেকে 177 টির চেয়ে কমিয়েছে। এটি প্রিন্টফ (স্প্রিন্টফ ()) ব্লকের চারপাশের বন্ধনীগুলি সরিয়ে ফেলতে দেয় কারণ এটি এখন কেবলমাত্র একটি বিবৃতি, তবে এটি কেবল একটি অক্ষর সংরক্ষণ করেছে কারণ এর জন্য এখনও একটি সীমানা হিসাবে স্থান প্রয়োজন। তাই 176-এ নেমে গেছে।


আপনি wকোথায় এটির সংজ্ঞাটি ইনলাইন করতে পারবেন না ? আপনি এটি একবার ব্যবহার করেছেন বলে মনে হচ্ছে।
টমসডিং

আপনি itoaস্প্রিন্টফের পরিবর্তে ব্যবহার করতে পারবেন না ?
গিয়াকোমো গারাবেলো

আমি এটিয়া বিবেচনা করেছি, তবে এটি আমার সিস্টেমে বিদ্যমান নেই এবং আমি ক্ষেত্রের প্রস্থ নির্ধারণ করতে স্প্রিন্টফের ফেরতের মানটি ব্যবহার করছি।
maharvey67

2

পাওয়ারশেল ভি 2 +, 133 বাইট

param($n)$a=1,1;1..$n|%{$a+=$a[$_-1]+$a[$_]*($_%2+1)};$a[0..$n]|%{$z=" "*$l+$_;if($i++%2){$x+=$z}else{$y+=$z}$l="$_".Length};$x;$y;$x

মানগুলি গণনা করতে 44 বাইট, এএসসিআইআই গঠনের জন্য 70 বাইট

$nশূন্য-সূচকযুক্ত কলাম হিসাবে ইনপুট নেয় । আমাদের সিকোয়েন্স অ্যারের শুরুটি সেট করে $a=1,1। আমরা তখন লুপ পর্যন্ত $nসঙ্গে 1..$n|%{...}অ্যারের গঠন করা। প্রতিটি পুনরাবৃত্তি, আমরা (দুটি উপাদান পূর্বে) + (পূর্ববর্তী উপাদান) এর যোগফল () আমরা বিজোড় বা এমনকি সূচক যাই হোক না কেন) এর উপর যোগ করি। এটি $a=1,1,3,4,11...পর্যন্ত উত্পন্ন করবে $n+2

সুতরাং, $aকেবলমাত্র প্রথম 0..$nউপাদানগুলি নেওয়ার জন্য আমাদের টুকরো টুকরো করতে হবে এবং অন্য লুপের মাধ্যমে সেগুলিকে পাইপ করতে হবে |%{...}। প্রতিটি পুনরাবৃত্তি আমরা সহায়ককে $zএকটি স্ট্রিং হিসাবে প্রচুর স্পেস প্লাস বর্তমান উপাদানটির সমান রাখি। তারপরে, আমরা এটি পৃথক করে যাচ্ছি যে এটি $x(উপরের এবং নীচের সারিগুলি) বা $y(মাঝারি সারি) একটি সাধারণ বিজোড়-সমান if/ দ্বারা সংমিশ্রিত হয় else। তারপরে, আমরা $lবর্তমান নম্বরটি ব্যবহার করে, স্ট্রিংফাইং করে এবং এর ব্যবহার করে স্পেসের সংখ্যা গণনা করি .Length

পরিশেষে, আমরা করা $x, $yএবং $xপাইপলাইন প্রকল্পের আবার, এবং আউটপুট অন্তর্নিহিত হয়। যেহেতু .ToString()STDOUT এ মুদ্রণ করা একটি অ্যারের জন্য ডিফল্ট বিভাজক একটি নতুন লাইন, আমরা এটি নিখরচায় পাই।

উদাহরণ

PS C:\Tools\Scripts\golfing> .\pascal-braid.ps1 27
 1 4  15  56   209   780    2911    10864     40545      151316      564719       2107560       7865521        29354524
1 3 11  41  153   571   2131    7953     29681     110771      413403      1542841       5757961       21489003
 1 4  15  56   209   780    2911    10864     40545      151316      564719       2107560       7865521        29354524

0

পিএইচপি 265 বাইট

<?php $i=$argv[1];$i=$i?$i:1;$a=[[],[]];$s=['',''];$p='';for($j=0;$j<$i;$j++){$y=($j+1)%2;$x=floor($j/2);$v=$x?$y?2*$a[0][$x-1]+$a[1][$x-1]:$a[0][$x-1]+$a[1][$x]:1;$s[$y].=$p.$v;$a[$y][$x]=$v;$p=str_pad('',strlen($v),' ');}printf("%s\n%s\n%s\n",$s[0],$s[1],$s[0]);

আন golfed:

$a = [[],[]];
$s = ['',''];

$p = '';

$i=$argv[1];
$i=$i?$i:1;
for($j=0; $j<$i; $j++) {
    $y = ($j+1) % 2;
    $x = floor($j/2);

    if( $x == 0 ) {
        $v = 1;
    } else {
        if( $y ) {
            $v = 2 * $a[0][$x-1] + $a[1][$x-1];
        } else {
            $v = $a[0][$x-1] + $a[1][$x];
        }
    }
    $s[$y] .= $p . $v;
    $a[$y][$x] = $v;
    $p = str_pad('', strlen($v), ' ');
}

printf("%s\n%s\n%s\n", $s[0], $s[1], $s[0]);

পাইথন 278 বাইট

import sys,math;a=[[],[]];s=['',''];p='';i=int(sys.argv[1]);i=1 if i<1 else i;j=0
while j<i:y=(j+1)%2;x=int(math.floor(j/2));v=(2*a[0][x-1]+a[1][x-1] if y else a[0][x-1]+a[1][x]) if x else 1;s[y]+=p+str(v);a[y].append(v);p=' '*len(str(v));j+=1
print ("%s\n"*3)%(s[0],s[1],s[0])


0

মতলব, 223 অক্ষর, 226 বাইট

function[]=p(n)
r=[1;1];e={(' 1 ')',('1 1')'}
for i=3:n;r(i)=sum((mod(i,2)+1)*r(i-1)+r(i-2));s=num2str(r(i));b=blanks(floor(log10(r(i)))+1);if mod(i,2);e{i}=[b;s;b];else e{i}=[s;b;s];end;end
reshape(sprintf('%s',e{:}),3,[])

অবহেলিত এবং মন্তব্য করেছেন:

function[]=p(n) 
r=[1;1];                                    % start with first two 
e={(' 1 ')',('1 1')'}                       % initialize string output as columns of blank, 1, blank and 1, blank, 1.
for i=3:n;                                  % for n=3 and up! 
    r(i)=sum((mod(i,2)+1)*r(i-1)+r(i-2));   % get the next number by 1 if even, 2 if odd times previous plus two steps back
    s=num2str(r(i));                        % define that number as a string
    b=blanks(floor(log10(r(i)))+1);         % get a number of space characters for that number of digits
    if mod(i,2);                            % for odds
        e{i}=[b;s;b];                       % spaces, number, spaces
    else                                    % for evens
        e{i}=[s;b;s];                       % number, spaces, number
    end;
end
reshape(sprintf('%s',e{:}),3,[])            % print the cell array of strings and reshape it so it's 3 lines high

0

পিএইচপি, 135 124 123 120 বাইট

<?while($i<$argv[1]){${s.$x=!$x}.=${v.$x}=$a=$i++<2?:$v1+$v+$x*$v;${s.!$x}.=str_repeat(' ',strlen($a));}echo"$s
$s1
$s";

অন্তর্নিহিত টাইপকাস্ট এবং ভেরিয়েবল ভেরিয়েবলের সুবিধা গ্রহণ
করে কোডের একটি তৃতীয়াংশ (37 বাইট) স্পেসে যায়, আউটপুটের জন্য সামগ্রিকভাবে 64 বাইট ব্যবহৃত হয়

ভাঙ্গন

$i=0; $x=false; $v=$v1=1; $s=$s1='';    // unnecessary variable initializations
for($i=0;$i<$argv[1];$i++)  // $i is column number -1
{
    $x=!$x; // $x = current row: true (1) for inner, false (empty string or 0) for outer
    // calculate value
    $a=
        $i<2?               // first or second column: value 1
        :$v1+(1+$x)*$v      // inner-val + (inner row: 1+1=2, outer row: 1+0=1)*outer-val
    ;
    ${s.$x}.=${v.$x}=$a;    // replace target value, append to current row
    ${s.!$x}.=str_repeat(' ',strlen($a));    // append spaces to other row
}
// output
echo "$s\n$s1\n$s";

0

ব্যাচ, 250 বাইট

@echo off
set s=
set d=
set/ai=n=0,j=m=1
:l
set/ai+=1,j^^=3,l=m+n*j,m=n,n=l
set t=%s%%l%
for /l %%j in (0,1,9)do call set l=%%l:%%j= %%
set s=%d%%l%
set d=%t%
if not %i%==%1 goto l
if %j%==1 echo %d%
echo %s%
echo %d%
if %j%==2 echo %s%

যেহেতু প্রথম এবং তৃতীয় লাইনগুলি একই, আমাদের কেবল দুটি স্ট্রিং তৈরি করতে হবে। এখানে dসর্বশেষ এন্ট্রি দিয়ে শেষ sহওয়া স্ট্রিংটি উপস্থাপিত করে এবং স্প্রেগুলির সাথে শেষ হওয়া স্ট্রিংটির প্রতিনিধিত্ব করে; শেষ চারটি লাইন নিশ্চিত করে যে সেগুলি যথাযথ ক্রমে মুদ্রিত হয়েছে। iএটি কেবল লুপের কাউন্টার (এটি গণনা করার চেয়ে সামান্য সস্তা %1)। jপরবর্তী সংখ্যাটি পাওয়ার জন্য বর্তমান নম্বরটিতে যুক্ত করার আগে আগের সংখ্যাটি দ্বিগুণ করার মধ্যে টগল। mএবং nএই সংখ্যা আছে। lপাশাপাশি পরবর্তী সংখ্যা গণনা করার জন্য অস্থায়ী হিসাবে ব্যবহৃত হওয়ার সাথে সাথে এর অঙ্কগুলি স্থান প্যাড করার জন্য স্থানগুলির সাথে প্রতিস্থাপিত করে s; sএবং dপ্রতিটি মধ্যবর্তী ভেরিয়েবলের মাধ্যমে বিনিময় হয় t

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