অনুকূল স্কোয়ার ম্যাট্রিক্স গণনা করুন


13

অনুকূল ম্যাট্রিক্স (এই চ্যালেঞ্জের বরং সংকীর্ণ সুযোগ জন্য) দ্বারা প্রাপ্ত হয় "zip করা" সংশ্লিষ্ট সারি এবং একটি বর্গাকার ম্যাট্রিক্সের এবং প্রতিটি জোড়া সর্বোচ্চ পাবার কলাম থেকে উপাদানগুলি।

উদাহরণস্বরূপ, নিম্নলিখিত ম্যাট্রিক্স দেওয়া:

4 5 6
1 7 2
7 3 0

আপনি পেতে তার TRANSPOSE সঙ্গে এটি একত্রিত করতে পারেন: [[[4,5,6],[4,1,7]],[[1,7,2],[5,7,3]],[[7,3,0],[6,2,0]]]। আপনি তালিকার প্রতিটি জোড়া zip, তাহলে আপনি নিম্নলিখিত প্রাপ্ত: [[(4,4),(5,1),(6,7)],[(1,5),(7,7),(2,3)],[(7,6),(3,2),(0,0)]]। সর্বশেষ পদক্ষেপটি হ'ল সর্বোত্তম ম্যাট্রিক্স পাওয়ার জন্য প্রতিটি জোড়া সর্বাধিক পাওয়া:

4 5 7
5 7 3
7 3 0

আপনার কাজটি ইনপুট হিসাবে দেওয়া বর্গ ম্যাট্রিক্সের সর্বোত্তম ম্যাট্রিক্স আউটপুট করা। ম্যাট্রিক্সে কেবল পূর্ণসংখ্যা থাকবে। আই / ও যে কোনও যুক্তিসঙ্গত বিন্যাসে করা যেতে পারে। বাইটের মধ্যে সংক্ষিপ্ততম কোড (ইউটিএফ -8 বা ভাষার কাস্টম এনকোডিংয়ে) জয়ী!

টেস্ট

[[172,29], [29,0]] -> [[172,29], [29,0]]
[[4,5,6], [1,7,2], [7,3,0]] -> [[4,5,7], [5,7,3], [7,3,0 ]]
[[1,2,3], [1,2,3], [1,2,3]] -> [[1,2,3], [2,2,3], [3,3,3 ]]
[[4,5, -6], [0,8, -12], [- 2,2,4]] -> [[4,5, -2], [5,8,2], [- 2,2,4]]

আমরা কি ম্যাট্রিক্সের একটি ফ্ল্যাট সংস্করণ আউটপুট করতে পারি? যেমন [1,2,3,4]পরিবর্তে [[1,2],[3,4]]? ~ 33% সাশ্রয় করবে
wastl

উত্তর:


7

জেলি , 2 বাইট

»Z

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

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

»Z  Main link. Argument: M (integer matrix)

 Z  Zip the rows of M, transposing rows and columns.
»   Take the maxima of all corresponding integers.

ওহ আমার ... পৃথিবীতে কেন এমন »আচরণ হয় ?!

5
একটি অ্যারে ম্যানিপুলেশন ভাষার জন্য দুর্দান্ত মান। অক্টোটাও maxএকই কাজ করে।
ডেনিস

5

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

z(z max)<*>foldr(z(:))e
e=[]:e
z=zipWith

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

আমি এই হিসাবে ungolf হবে:

import Data.List
f m = zipWith (zipWith max) m (transpose m)

... যা অনেক বেশি মার্জিত।


2
আমি মজার বিষয় বোধ করি যে ক্লিনের মধ্যে আমি যে সেরা সেরা গল্ফটি করতে পারি তা হতাশাগ্রস্থ হাসকেলের মতোই।
0urous





2

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

m=>m.map((r,y)=>r.map((v,x)=>v>(k=m[x][y])?v:k))

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


2

জে , 4 বাইট

Tacit উপসর্গ ফাংশন।

>.|:

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

>. সিলিং [যুক্তির] সাথে

|: স্থানান্তরিত যুক্তি


উম, আমি আপনাকে অন্তর্ভুক্ত করার প্রয়োজন বলে মনে করি না f=:। : পি প্রথমে আমি ভেবেছিলাম আপনি বাইট কাউন্টটি 3 বাইট কমিয়ে দিয়েছেন ...
এরিক দি আউটগলফার

<.ধারণা করা হচ্ছে>.
ফ্রাউনফ্রগ

পছন্দ করুন
অ্যাডাম

পছন্দ করুন
অ্যাডাম


1

সিজেম , 8 বাইট

{_z..e>}

বেনামি ব্লক (ফাংশন) যা স্ট্যাক থেকে ইনপুট নেয় এবং আউটপুট দ্বারা প্রতিস্থাপন করে।

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা

{      }    e# Define block
 _          e# Duplicate
  z         e# Zip
   .        e# Apply next operator to the two arrays, item by item
            e# (that is, to rows of the two matrices)
    .       e# Apply next operator to the two arrays, item by item
            e# (that is, to numbers of the two rows)
     e>     e# Maximum of two numbers

1

আর , 23 বাইট

function(A)pmax(A,t(A))

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

এটি অন্যান্য অন্যান্য উত্তরের সমতুল্য। যাইহোক, আর maxদুটি সাধারণ পরিস্থিতি জন্য দুটি পৃথক ফাংশন রয়েছে:

maxএবং minতাদের আর্গুমেন্টে উপস্থিত সমস্ত মানগুলির সর্বাধিক বা ন্যূনতম ফিরিয়ে আনুন, যদি সমস্তটি যৌক্তিক বা পূর্ণসংখ্যা হয় পূর্ণসংখ্যা হিসাবে, সমস্ত সংখ্যাসূচক হলে দ্বিগুণ, এবং অন্যথায় অক্ষর।

pmaxএবং pminএক বা একাধিক ভেক্টরকে (বা ম্যাট্রিক্স) আর্গুমেন্ট হিসাবে গ্রহণ করুন এবং ভেক্টরগুলির 'সমান্তরাল' ম্যাক্সিমা (বা মিনিমা) প্রদান করে একটি একক ভেক্টর ফিরিয়ে দিন। ফলাফলের প্রথম উপাদানটি হ'ল সমস্ত আর্গুমেন্টের প্রথম উপাদানগুলির সর্বাধিক (সর্বনিম্ন) হয়, ফলাফলের দ্বিতীয় উপাদানটি সমস্ত আর্গুমেন্টের দ্বিতীয় উপাদানগুলির সর্বাধিক (সর্বনিম্ন) হয় ইত্যাদি। সংক্ষিপ্ত ইনপুটগুলি (অ-শূন্য দৈর্ঘ্যের) প্রয়োজনে পুনর্ব্যবহার করা হয়।



1

সি (জিসিসি) , 79 77 বাইট

  • স্টেডিবক্সকে দুটি বাইট সংরক্ষণ করা ; এই চ্যালেঞ্জের সমস্ত ম্যাট্রিক্স বর্গক্ষেত্র হিসাবে কেবল একটি ম্যাট্রিক্স মাত্রা প্যারামিটার গ্রহণ করা।
j,i;f(A,n)int*A;{for(j=0;j<n*n;j++)printf("%d,",A[A[j]>A[i=j/n+j%n*n]?j:i]);}

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

ইনপুট হিসাবে একটি সমতল পূর্ণসংখ্যার অ্যারে Aএবং ম্যাট্রিক্সের মাত্রা n(যেমন ম্যাট্রিক্সটি বর্গক্ষেত্র হতে হবে) নেয়। স্ট্যাডআউটে ফ্ল্যাট ইন্টিজার অ্যারের স্ট্রিং প্রতিনিধিত্ব করে।








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