ম্যাট্রিক্স ভেঙে যাচ্ছে


18

সম্পর্কিত: আসুন একটি ডিজিট মোজাইক ডিজাইন করি , এল-ফ্যাবেট প্রিন্ট / আউটপুট করিস্যান্ডবক্স পোস্ট এখানে

নিম্নলিখিত হিসাবে 2 ইনপুট C = columns and rows, S = starting pointআউটপুট একটি ম্যাট্রিক্স দেওয়া হয়েছে :

Input 4, 3

1   2   3   0
2   2   3   0
3   3   3   0
0   0   0   0

ব্যাখ্যা

প্রদত্ত C = 4, S = 3

1) C x Cভরা একটি ম্যাট্রিক্স তৈরি করুন0

         4 columns
4     _____|____
     |          |
r  --0  0   0   0
o |  0  0   0   0
w |  0  0   0   0
s  --0  0   0   0

2) Sসারি এবং কলামের মধ্যে মানগুলি পূরণ করুন S, তারপরে 1 টি বিয়োগ করুন Sএবং অবধি পুনরাবৃত্তি করুন S = 0। এই ক্ষেত্রেS = 3

             Column 3 
S = 3           |
                v
        0   0   3   0
        0   0   3   0
Row 3-->3   3   3   0
        0   0   0   0


         Column 2
S = 2       |
            v
        0   2   3   0
Row 2-->2   2   3   0
        3   3   3   0
        0   0   0   0


     Column 1
S=1     |
        v
Row 1-->1   2   3   0
        2   2   3   0
        3   3   3   0
        0   0   0   0



Final Result

1   2   3   0
2   2   3   0
3   3   3   0
0   0   0   0

বিধি

  • ধরে C >= S >= 0
  • আউটপুটটি একটি ম্যাট্রিক্স, তালিকার তালিকা, অ্যারে (1-মাত্রিক বা দ্বিমাত্রিক) ইত্যাদি হতে পারে
  • আপনি যে কোনও ডিফল্ট আই / ও ফর্ম্যাটটির মাধ্যমে ইনপুট নিতে পারেন
  • আপনার প্রোগ্রাম, ফাংশন, ইত্যাদি ... 1-ইনডেক্সিং বা 0-সূচক হতে পারে। কোনটি নির্দিষ্ট করুন specify

দ্রষ্টব্য ব্যাখ্যা 1-ইনডেক্সিং


মানদণ্ড জিতেছে

উত্তর:


6

জেলি , 8 বাইট

»>⁴¬×»µþ

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

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

জেলির আউটার প্রোডাক্ট অ্যাটম ( þ)

আপনি জেলি এর বাহ্যিক পণ্য পরমাণুর কথা চিন্তা করতে পারেন þ, দ্রুত (অপারেটর) হিসাবে, প্রদত্ত পূর্ণসংখ্যার যুক্তি এবং (এই ক্ষেত্রে ,), নিম্নলিখিত টিপলসের ম্যাট্রিক্স তৈরি করে:ওয়াই এক্স = ওয়াই = প্রথম যুক্তি এক্সওয়াইএক্স=ওয়াই=প্রথম যুক্তি 

[(1,1)(2,1)(3,1)(এক্স,1)(1,2)(2,2)(3,2)(এক্স,2)(1,ওয়াই)(2,ওয়াই)(3,ওয়াই)(এক্স,ওয়াই)]

এটি লিঙ্কটি সমস্ত জোড়ের ঠিক আগে প্রযোজ্য, আসুন একে কল করুন , যা এমন ফাংশনের মতো আচরণ করে যা দুটি যুক্তি গ্রহণ করে, এরকম কিছু তৈরি করে:

[(1,1)(2,1)(3,1)(এক্স,1)(1,2)(2,2)(3,2)(এক্স,2)(1,ওয়াই)(2,ওয়াই)(3,ওয়াই)(এক্স,ওয়াই)]

এটি হাতের কাজের সাথে কীভাবে প্রাসঙ্গিক?

ঠাহর যে প্রত্যাশিত আউটপুট প্রতিটি মান ঠিক সর্বোচ্চ সূচকের একটি টেবিল, বা দ্বারা এই কাজ যদি এই সর্বোচ্চ আমাদের দ্বিতীয় যুক্তি অতিক্রম করে। অতএব, আমরা এই ম্যাপিংটি সম্পাদন করতে নিম্নলিখিত লিঙ্কটি তৈরি করতে পারি:0

»>⁴¬×» – Dyadic (2-argument) link.
»      – Maximum of the X, Y coordinates.
 >⁴    – Check if this exceeds the second argument of the program.
   ¬   – Negate this boolean.
    ×» – And multiply by the maximum, computed again.

6

আর , 47 41 বাইট

function(C,S,m=outer(1:C,1:C,pmax))m*!m>S

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

1-ইন্ডেক্স। আউটপুট উত্পন্ন করে S==C(কোনও জিরো নেই) তারপরে এমন কক্ষগুলি শূন্য করে দেয় যার >Sম্যাট্রিক্স গুণনের সাহায্যে মূল্য রয়েছে (4 বাইটের জন্য জিউস্প্পকে ধন্যবাদ!)


ঝরঝরে! গুণটি আপনাকে কিছু ভাল মাইলেজ পাবে: 43 বাইট
জিউসেপ

@ জিউসেপ টিএক্স! আমি আরও দুটি সংরক্ষণ করতে সক্ষম হয়েছি :)
জয়সি


5

হাস্কেল , 47 45 বাইট

আউটপুট ফর্ম্যাটটিকে এক-মাত্রিক তালিকায় পরিবর্তন করে -2 বাইট

c&s|x<-[1..c]=[sum[j|j<=s]|j<-x>>=(<$>x).max]

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

ব্যাখ্যা

শব্দটি x >>= (<$> x) . maxএকটি গল্ফ সংস্করণ

concat [ max i <$> x | i <- x ]

যা মূল্যায়ন [1,2,3,4..c, 2,2,3,4..c, 3,3,3,4..c, ..., c,c,c,c..c]। এখন আমরা কেবল মান বলপূর্বক প্রয়োজন 0একবার তারা অতিক্রম sযা আমরা সঙ্গে অর্জন sum [ j | j <= s]



3

কিছু o×⎕≥o←∘.⌈⍨⍳অনুমতি দেওয়া হবে, বা আপনি এটি গণনা করার জন্য একটি ফাংশন এটাকে দিতে হবে?
জাকারি

@ জাচার আমার অনুমান যে কোনও একটি যুক্তি বা ডিএফএনএস দিয়ে এটি একটি ট্রেডফেনের ভিতরে রাখা দরকার
উরিল

3

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

সিনট্যাক্স কারি করার ক্ষেত্রে ইনপুট নেয় (c)(s), যেখানে গুলি 1-সূচকযুক্ত। 1-মাত্রিক অ্যারে প্রদান করে।

c=>s=>[...Array(c*c)].map((_,k)=>(k=k%c>k/c?k%c:k/c)<s?-~k:0)

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


3

জেলি , 6 বাইট

⁴Ri»µþ

একটি পূর্ণ প্রোগ্রাম * পূর্ণসংখ্যা গ্রহণ করে Cএবং Sযা সংজ্ঞায়িত (1-সূচকযুক্ত) হিসাবে পূর্ণসংখ্যার তালিকার তালিকার জেলি উপস্থাপনাকে মুদ্রণ করে।

এটি অনলাইন চেষ্টা করুন! (সহজ পড়ার জন্য ডায়াডের ফলাফলকে সংখ্যার গ্রিড হিসাবে ফর্ম্যাট করে)

কিভাবে?

⁴Ri»µþ - Main Link: C, S
     þ - outer product with:
    µ  -   the monadic function (i.e. f(x,y) for x in [1..C] for y in [1..C]):
   »   -     maximum (of x and y)
⁴      -     program's 4th argument = 2nd input = S
 R     -     range = [1,2,3,...S]
  i    -     first index of (the maximum) in (the range) or 0 if not found
       - as a full program: implicit print

* এটি একটি সম্পূর্ণ প্রোগ্রাম হওয়ার কারণ প্রোগ্রামের যুক্তি অ্যাক্সেস ব্যবহার বন্ধ করে দিয়েছে ,। একটি ডায়াডিক লিঙ্ক হিসাবে এই কোডটি যে প্রোগ্রামটি এটি ব্যবহার করছে তাকে কীভাবে ডাকা হয় তার উপর নির্ভর করবে।
8 বাইটে পুনরায় ব্যবহারযোগ্য ডায়াডিক লিংক (বাম দিকে এস এবং ডানদিকে সি নেওয়া): 8 বাইটে পুনরায় ব্যবহারযোগ্য ডায়াডিক লিঙ্ক (বাম দিকে সি এবং ডানদিকে এস):RiⱮⱮ»þ`}
RiⱮⱮ⁹»þ¤


2

জাভা 10, 88 বাইট

C->S->{var r=new int[C][C];for(;S>0;)for(int s=S--;s-->0;)r[S][s]=r[s][S]=S+1;return r;}

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

ব্যাখ্যা:

C->S->{                     // Method with two int parameters and int-matrix return-type
  var r=new int[C][C];      //  Result-matrix of size `C` by `C`
  for(;S>0;)                //  Loop as long as `S` is not 0 yet:
    for(int s=S--;s-->0;)   //   Inner loop `s` in the range (`S`, 0]
                            //   (and decrease `S` by 1 in the process with `S--`)
      r[S][s]=r[s][S]=S+1;  //    Set the values at both {`S`,`s`} and {`s`,`S`} to `S+1`
  return r;}                //  Return the result


2

স্ট্যাক্স , 10 বাইট

▓╜.→,cΘ○╤æ

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

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

R(Xm]i*xit+J Full program, implicit input.
R            1-based range of S
 (           Right-pad with zeroes to length C
  X          Save to X register
   m         Map (same as here):
    ]          Wrap in list
     i*        repeat by iteration index
       xit     Remove first  elements from X register
          +    Append
           J   Stringify each element, and join by space


2

এক্সেল ভিবিএ, 65 বাইট

একটি তাত্ক্ষণিক উইন্ডো ফাংশন যা ইনপুট নেয় [A1:B1]এবং সীমার বাইরে আউটপুট নেয় [C1].Resize([A1],[A1])

[C1].Resize([A1],[A1])=0:For s=-[B1]To-1:[C1].Resize(-s,-s)=-s:Next

ইনপুট আউটপুট

ইনপুট সীমার মধ্যে রয়েছে [A1:B1]

ইনপুট / আউটপুট



2

ম্যাটল্যাব, 58 বাইট (বেনামে ব্যবহারকারীর জন্য ধন্যবাদ)

function o=f(c,s);o=zeros(c);for j=s:-1:1;o(1:j,1:j)=j;end

একটি লুপ চালিয়ে, উপযুক্ত নম্বর দিয়ে কেবল ম্যাট্রিক্সের উপাদানগুলি পূরণ করুন। সঙ্গে চালক হতে পারেarrayfun


আপনার ফাংশনটির নাম রাখার দরকার নেই এবং আপনি কোন zeros(c)কোনও বাইট নিরাপদে ব্যবহার করতে পারেন । এছাড়াও আপনি কি এই অষ্টাভের উত্তরটি দেখেছেন , আমার ধারণা এটি মতলবেও কাজ করবে?
ბიმო

@ ওএম অষ্টাভে আপনি মতলবতে বেনামে ফাংশনগুলির মধ্যে ভেরিয়েবলের নাম রাখতে পারবেন না। এছাড়াও, max()একই আকারের যুক্তিগুলি গ্রহণ করতে হবে
আআআআ বলেছে মনিকা

1
একজন বেনামে ব্যবহারকারী পরামর্শ দিয়েছেন function o=f(c,s);o=zeros(c);for j=s:-1:1;o(1:s,1:s)=j;end
জোনাথন ফ্রেচ

@ জোনাথনফ্রেচ ওহ আমার এত সহজ :-( শুধু হওয়া দরকারo(1:j,1:j)=j
আআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআ



1

কাঠকয়লা , 19 বাইট

Eθ⪫IEEθ⌈⟦ιλ⟧∧‹λη⊕λ 

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। 3 বাইট আউটপুটকে দশমিক রূপান্তর করতে এবং এটিকে সুন্দরভাবে ফর্ম্যাট করতে ব্যবহৃত হয়। ব্যাখ্যা:

 θ                  Input `C`
E                   Map over implicit range
      θ             Input `C`
     E              Map over implicit range
          λ         Inner index
         ι          Outer index
       ⌈⟦  ⟧        Maximium
    E               Map over results
              λ     Current value
               η    Input `S`
             ‹      Less than
                 λ  Current value
                ⊕   Incremented
            ∧       Logical AND
   I                Cast to string
  ⪫                 Join with spaces
                    Implicitly print on separate lines



0

গণিত 44 বাইট

Table[If[i <= s && j <= s, Max[i, j], 0], {i, c}, {j, c}]

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