প্রতিলিপিযুক্ত ম্যাট্রিকগুলির যোগফল


11

সংখ্যার একটি তালিকা দেওয়া [ a 1 a 2 ... a n ] , সমস্ত ম্যাট্রিকের Aᵢ এর যোগফল গণনা করুন যেখানে Aᵢ নির্ধারিত হিসাবে সংজ্ঞায়িত হয়েছে ( m সমস্ত aᵢ এর সর্বোচ্চ ):

       1  2  ⋯ (i-1) i (i+1) ⋯  n
     +----------------------------
 1   | 0  0  ⋯   0   aᵢ  aᵢ  ⋯  aᵢ
 2   | 0  0  ⋯   0   aᵢ  aᵢ  ⋯  aᵢ
 .   . .  .      .   .   .      .
 .   . .  .      .   .   .      .
aᵢ   | 0  0  ⋯   0   aᵢ  aᵢ  ⋯  aᵢ
aᵢ₊₁ | 0  0  ⋯   0   0   0   ⋯  0
 .   . .  .      .   .   .      .
 .   . .  .      .   .   .      .
 m   | 0  0  ⋯   0   0   0   ⋯  0

উদাহরণ

ইনপুট দেওয়া হয়েছে [2,1,3,1]আমরা নিম্নলিখিত ম্যাট্রিক্স নির্মাণ:

[2 2 2 2]   [0 1 1 1]   [0 0 3 3]   [0 0 0 1]   [2 3 6 7]
[2 2 2 2] + [0 0 0 0] + [0 0 3 3] + [0 0 0 0] = [2 2 5 5]
[0 0 0 0]   [0 0 0 0]   [0 0 3 3]   [0 0 0 0]   [0 0 3 3]

বিধি এবং I / O

  • আপনি ধরে নিতে পারেন ইনপুটটি খালি নেই
  • আপনি ধরে নিতে পারেন সমস্ত ইনপুট অ-নেতিবাচক (0≤)
  • ইনপুটটি 1 × n (বা n × 1) ম্যাট্রিক্স, তালিকা, অ্যারে ইত্যাদি হতে পারে
  • একইভাবে আউটপুট একটি ম্যাট্রিক্স, তালিকার তালিকা, অ্যারে ইত্যাদি হতে পারে
  • আপনি যে কোনও ডিফল্ট I / O ফর্ম্যাটের মাধ্যমে ইনপুটগুলি নিতে এবং ফিরে আসতে পারেন
  • আপনার জমাটি একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন হতে পারে

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

[0] -> [] or [[]]
[1] -> [[1]]
[3] -> [[3],[3],[3]]
[2,2] -> [[2,4],[2,4]]
[3,0,0] -> [[3,3,3],[3,3,3],[3,3,3]]
[1,2,3,4,5] -> [[1,3,6,10,15],[0,2,5,9,14],[0,0,3,7,12],[0,0,0,4,9],[0,0,0,0,5]]
[10,1,0,3,7,8] -> [[10,11,11,14,21,29],[10,10,10,13,20,28],[10,10,10,13,20,28],[10,10,10,10,17,25],[10,10,10,10,17,25],[10,10,10,10,17,25],[10,10,10,10,17,25],[10,10,10,10,10,18],[10,10,10,10,10,10],[10,10,10,10,10,10]]

আমি অনুমান করছি একটি হরফ পার্থক্য বা কিছু আছে। আমি দেখছি আপনি আমার সম্পাদনাটি ফিরিয়ে দিয়েছেন। Imgur.com/a06RH9r বর্তমানে এটি আমার কাছে এইভাবে দেখায় এটি উইন্ডোজ ১০-এ ক্রোম some এজন্যই আমি এটি পরিবর্তন করেছি। তবে আমার ধারণা এটি অবশ্যই আলাদা পরিবেশে আলাদা হবে।
23:38

1
অবশ্যই একটি ফন্ট সমস্যা। উভয় পুনর্বিবেচনাগুলি আমার স্ক্রিনে ভুলভ্রান্ত।
ডেনিস

আমরা কি স্থানান্তরিত ফলাফল ফিরিয়ে দিতে পারি?
অ্যাডম


1
@ অ্যাডাম: আমি এটিকে কিছু বলতে চাই না, তবে আপনার পোস্টে এমন কোনও সমাধান অন্তর্ভুক্ত করতে নির্দ্বিধায় মনে হয় যা এটি করে।
ბიმო

উত্তর:


9

জেলি , 10 5 বাইট

ẋ"z0Ä

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

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

ẋ"z0Ä  Main link. Argument: A (array)


       e.g. [2, 1, 3, 1]

ẋ"     Repeat each n in A n times.

       e.g. [[2, 2   ]
             [1      ]
             [3, 3, 3]
             [1      ]]

  z0   Zipfill 0; read the result by columns, filling missing elements with 0's.

        e.g. [[2, 1, 3, 1]
              [2, 0, 3, 0]
              [0, 0, 3, 0]]

    Ä  Take the cumulative sum of each row vector.

       e.g. [[2, 3, 6, 7]
             [2, 2, 5, 5]
             [0, 0, 3, 3]]

4

আর , 80 বাইট

n=sum((a=scan())|1);for(i in 1:n)F=F+`[<-`(matrix(0,max(a),n),0:a[i],i:n,a[i]);F

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

স্টিডিন থেকে ইনপুট নেয়; 0x1ইনপুট জন্য একটি ম্যাট্রিক্স মুদ্রণ 0, যা প্রিন্ট আউট

	[,1]


3
যারা ভাবছেন তাদের জন্য, Fএকটি বিল্ট-ইন গ্লোবাল ভেরিয়েবল যার প্রাথমিক মান FALSE। এখানে এটি 0 তে জোর করে এবং ক্রমসংখ্যার যোগফলের প্রাথমিক মান হিসাবে ব্যবহৃত হয়। এই উত্তরটি ব্যবহার না করার কারণ প্রমান Fএবং Tকোডে বিশেষভাবে আসলে ব্যবহার করা কখনোই পরিকল্পিত ছাড়া!
এনজিএম

4

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

g x=[scanl1(+)[sum[n|n>=r]|n<-x]|r<-[1..maximum x]]

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


1
ধাঁধা হিসাবে, এখানে 54 বাইট সংস্করণ রয়েছে;)
ბიმო

1
@ বিএমও এর পরিবর্তে প্রায় 51 বাইট কীভাবে?
লাইকনি

খুব সুন্দর! খনি ছিল এই :)
ბიმო


3

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

পুরো প্রোগ্রাম। তালিকার জন্য স্ট্ডিন প্রম্পট করে, ম্যাট্রিক্সকে স্টডআউট প্রিন্ট করে।

ডেনিসের পদ্ধতি ব্যবহার করে ।

+\⍉↑⍴⍨¨⎕

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

 stdin

⍴⍨¨R প্রত্যেকে eshape-শেলফি

 মেট্রিক্সের মধ্যে তালিকাগুলির মিশ্রন করুন, 0 টি দিয়ে পূরণ করুন

 TRANSPOSE

+\ ক্রমসংখ্যক সারিবদ্ধ সমষ্টি

কোন গণনীয় পার্থক্য দেখা যায় না তাই এটি সম্ভাব্য বাদ হতে পারে এবং \এতে পরিবর্তিত কলাম ভিত্তিক পরিবর্তে সারি ভিত্তিক যোগফল করতে হবে।



2

অক্টাভা , 64 বাইট

@(x,k=a=0*(x+(1:max(x))'))eval"for i=x;a(1:i,++k:end)+=i;end,a";

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

ব্যাখ্যা:

তবুও আবার: যুক্তি তালিকার এক্সপ্রেশন এবং ইওল একটি ফাংশনে ব্যবহৃত হয় :)

এটি xইনপুট হিসাবে নেয় এবং মাত্রা সহ শূন্যে ভরা দুটি অভিন্ন ম্যাট্রিক তৈরি করে k=a=zeros(length(x),max(x))। সূক্ষ্মভাবে 2D-অ্যারে মাত্রাগুলি প্রসারিত করে এর পরে xউল্লম্ব ভেক্টরের সাথে অনুভূমিক ভেক্টর যুক্ত করে এটি অর্জন করা হবে 1:max(x), তারপরে এটি শূন্যের সাথে গুণিত করুন। ~(x+...)দুর্ভাগ্যক্রমে কাজ করে না, যেহেতু সেই aবাকীটি পুরো ফাংশনটিতে লজিক্যাল অ্যারে হতে বাধ্য করে।

for i=xএকটি লুপ যা প্রতিটি পুনরাবৃত্তির জন্য তৈরি করে এবং i=x(1)তারপরে আরও i=x(2)অনেক কিছু। a(1:i,k++:end)ম্যাট্রিক্সের অংশ যা প্রতিটি পুনরাবৃত্তির জন্য আপডেট করা উচিত। 1:iকোন ভেক্টর বলছে কোন সারিগুলি আপডেট করা উচিত। যদি i=0, তবে এটি একটি খালি ভেক্টর হবে, সুতরাং কিছুই আপডেট করা হবে না, অন্যথায় এটি 1, 2 ...। ম্যাট্রিক্সকে এক দ্বারা ++k:endবৃদ্ধি করে kএবং এই ম্যাট্রিক্সের প্রথম মান ( 1,2,3...) থেকে এবং ম্যাট্রিক্সের শেষ কলাম পর্যন্ত একটি সীমা তৈরি করে a+=iবর্তমান মান যোগ করুন aend,aলুপ এবং আউটপুট সমাপ্ত a




1

জাভা 10, 142 বাইট

a->{int l=a.length,i=0,j,s,m=0;for(int q:a)m=q>m?q:m;int[][]r=new int[m][l];for(;i<m;i++)for(j=s=0;j<l;j++)r[i][j]=s+=i<a[j]?a[j]:0;return r;}

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

a->{               // Method with integer-array parameter and integer-matrix return-type
  int l=a.length,  //  Length of the input-array
      i,j,         //  Index integers
      s,           //  Sum integer
  m=0;for(int q:a)m=q>m?q:m;
                   //  Determine the maximum of the input-array
  int[][]r=new int[m][l];
                   //  Result-matrix of size `m` by `l`
  for(;i<m;i++)    //  Loop `i` over the rows
    for(j=s=0;     //   Reset the sum to 0
        j<l;j++)   //   Inner loop `j` over the columns
      r[i][j]=s+=  //    Add the following to the sum `s`, add set it as current cell:
        i<a[j]?    //     If the row-index is smaller than the `j`'th value in the input:
         a[j]      //      Add the current item to the sum
        :          //     Else:
         0;        //      Leave the sum the same by adding 0
  return r;}       //  Return the result-matrix


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