সর্বাধিক অবদানকারী সারি


17

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

যেকোন যুক্তিসঙ্গত ইঙ্গিত দ্বারা উত্তর দিন, উদাহরণস্বরূপ অনন্য সারি অর্ডারের উপস্থিতির মাস্ক (বা সাজানোর ক্রম), বা সূচকগুলি (শূন্য- বা এক-ভিত্তিক), বা সারিগুলি (কোনও ক্রমে) বা কিছু সহ একটি সাবম্যাট্রিক্স ধরণের অভিধান তৈরি করুন ... - তবে এটি ব্যাখ্যা করুন!

উদাহরণ

[[1,2,3],[2,0,4],[6,3,0],[2,0,4],[6,3,0],[2,0,4]]:

অনন্য সারি হয় [1,2,3], [2,0,4]এবং [6,3,0]প্রতিটি যথাক্রমে 6, 6, 9 প্রতিটি সময় তারা ঘটতে অবদান। যাইহোক, এগুলি যথাক্রমে একবার, তিনবার এবং দু'বার ঘটে, সুতরাং তাদের সম্পর্কিত সমস্ত ঘটনাগুলি মোট (42) এর জন্য 6, 18 এবং 18 অবদান রাখে, সুতরাং পরবর্তী দুটি সারি সবচেয়ে বেশি অবদান রাখে। বৈধ উত্তর তাই:

[false,true,true] উপস্থিতি / সাজানোর ক্রমে বা
[1,2]/ [2,3] শূন্য / উপরে বা
[[2,0,4],[6,3,0]] প্রকৃত সারিগুলির এক-ভিত্তিক সূচকগুলিতে মাস্ক করুন


[[1,2],[3,1],[2,3],[1,2],[3,1],[2,3],[1,2]]

[false,false,true](উপস্থিতির ক্রম) / [false,true,false](সাজানোর ক্রম)
[2]/ [3](উপস্থিতির ক্রম) / [1]/ [2](সাজানোর ক্রম)
[[2,3]]
⋮ ⋮

উত্তর:



4

পাইথ , 9 বাইট

-1 FryAmTheEggman ধন্যবাদ!

{s.MssZ.g

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


1
চূড়ান্ত kপ্রয়োজন হয় না। এছাড়াও .M*sZ/QZ{একই দৈর্ঘ্যের সমাধান বলে মনে হচ্ছে।
FryAmTheEggman 21

1
@ ফ্রাইআম দ্য এজিজিম্যান ওহ লল আমি কীভাবে অটো-সম্পূর্ণ সম্পর্কে ভুলে গেছি? অনেক ধন্যবাদ!
মিঃ এক্সকোডার

4

আর , 64 বাইট

function(M)max(x<-tapply(rowSums(M),apply(M,1,toString),sum))==x

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

বাছাইয়ের ক্রমে TRUE / FALSE সহ একটি বুলিয়ান ভেক্টরকে ফেরৎ দেয় le
অনন্য সারিগুলি ভেক্টরের নাম হিসাবে দেখানো হয়েছে, সুতরাং সর্বাধিক অবদানকারীকে সনাক্ত করা সহজ।



2

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

import Data.Lists
f x=nub$argmaxes(\e->sum e*countElem e x)x

সারিগুলির একটি তালিকা ফেরত দেয়।


2

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

IΦθ∧⁼κ⌕θι⁼×№θιΣι⌈Eθ×№θλΣλ

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

  θ                         Input array
 Φ                          Filtered where
     κ                      Current index
    ⁼                       Equals
      ⌕                     First index of
        ι                   Current row
       θ                    In input array
   ∧                        Logical And
           №                Count of
             ι              Current row
            θ               In input array
          ×                 Multiplied by
              Σ             Sum of
               ι            Current row
         ⁼                  Equals
                ⌈           Maximum of
                  θ         Input array
                 E          Mapped over rows
                    №       Count of
                      λ     Current row
                     θ      In input array
                   ×        Multiplied by
                       Σ    Sum of
                        λ   Current row
I                           Cast to string
                            Implicitly printed

2

গণিত, 48 বাইট

Last[SortBy[Gather[m], Total[Flatten[#]] &]][[1]]

অথবা

TakeLargestBy[Gather[m], Total[#, 2] &, 1][[1, 1]]

যেখানে (উদাহরণস্বরূপ)

m = {{1, 2, 3}, {2, 0, 4}, {7, 9, 5}, {6, 3, 0}, {2, 0, 4}, 
     {6, 3, 0}, {2, 0, 4}, {7, 9, 5}};

2
আপনি শর্টহ্যান্ড ব্যবহার করতে পারেন এবং বাইটগুলি সংরক্ষণ করতে সাদা স্থান সরিয়ে ফেলতে পারেন:SortBy[Gather@m,Total@*Flatten][[-1,1]]
ডুরকনব

1
দেখে মনে হচ্ছে এটি পূর্বনির্ধারিত পরিবর্তনশীল থেকে ইনপুট নেয়, যা অনুমোদিত নয় । জমা দেওয়ার জন্য সম্পূর্ণ প্রোগ্রাম বা ডিফল্টরূপে কাজ করতে হয়।
ডেনিস

TakeLargestBy[Gather[m], Total[#, 2] &, 1][[1, 1]] /@ m
ডেভিড জি স্টারক

এটি বৈধ নয়; এটি কেবলমাত্র সকলের চেয়ে সারিগুলির মধ্যে একটিতে সর্বাধিক মানগুলি দিয়ে দেয়।
lirtosiast






1

পাইথন 2 , 81 78 বাইট

lambda a:{u for u in a if a.count(u)*sum(u)==max(a.count(t)*sum(t)for t in a)}

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

ব্ল্যাক আউল কাই থেকে 3 বাইট থেক্স ।

টিপলসের সংকলন দেওয়া, আউটপুট হ'ল কাঙ্ক্ষিত সর্বাধিক সম্পত্তি থাকা এই টিপলগুলির একটি সেট।



@ ব্ল্যাক আউল কাই: থেক্স! আমি এটি মিস করেছি ...
চ্যাস ব্রাউন


0

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 126 বাইট

n=>{var i=n.OrderBy(a=>a.Sum()*n.Count(a.SequenceEqual));return i.Where((a,b)=>i.Take(b).Count(a.SequenceEqual)<1).Reverse();}

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

এই কোডগুলির বেশিরভাগটি সমস্ত নকল মানগুলি ব্যয় করে ব্যয় করা হয়, যেহেতু তালিকার জন্য ডিফল্ট তুলক তালিকার ভিতরে থাকা মানগুলি তুলনা করে না। তার মানে যে আমি ব্যবহার করতে পারবেন না Distinct(), GroupBy()কিংবা Containsতালিকা ফিল্টার করতে।


0

কে (এনএনজি / কে) , 17 বাইট

{&a=|/a:+//'x@=x}

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

{ } যুক্তি দিয়ে ফাংশন x

=x গোষ্ঠী - একটি অভিধান তৈরি করুন যাতে কীগুলি সারি হয় এবং মানগুলি ম্যাট্রিক্সে সূচকগুলির তালিকা হয়

x@মূল ম্যাট্রিক্সের সাথে সূচী করুন। ফলাফলটি আবার কীগুলির মতো সারিগুলির সাথে একটি অভিধান। মানগুলি সংশ্লিষ্ট কীটির একাধিক অনুলিপি

+//' একত্রীকরণ পর্যন্ত সমষ্টি (শুধুমাত্র মানগুলিতে কাজ করে; কীগুলি যেমন রয়েছে তেমন থাকবে)

a: ধার্য a

|/ সর্বাধিক (মানগুলির)

a=|/a একটি সারি-থেকে-বুলিয়ান অভিধান যা সারিগুলিতে সর্বাধিক অবদান রাখে

& "কোথায়", অর্থাত্ কোন কীগুলি 1 এর মানের সাথে মিল রয়েছে



0

05 এ বি 1 ই , 10 9 বাইট

ês{γOOZQÏ

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

ব্যাখ্যা:

ê          # Sort and uniquify the (implicit) input list of lists
           #  i.e. [[2,0,4],[1,2,3],[6,3,0],[2,0,4],[6,3,0],[2,0,4]]
           #   → [[1,2,3],[2,0,4],[6,3,0]]
 s         # Swap so the (implicit) input list of lists is at the top again
  {        # Sort it
           #  i.e. [[2,0,4],[1,2,3],[6,3,0],[2,0,4],[6,3,0],[2,0,4]]
           #   → [[1,2,3],[2,0,4],[2,0,4],[2,0,4],[6,3,0],[6,3,0]]
   γ       # Group the sorted list of lists
           #  i.e. [[1,2,3],[2,0,4],[2,0,4],[2,0,4],[6,3,0],[6,3,0]]
           #   → [[[1,2,3]],[[2,0,4],[2,0,4],[2,0,4]],[[6,3,0],[6,3,0]]]
    O      # Take the sum of each inner-most lists
           #  i.e. [[[1,2,3]],[[2,0,4],[2,0,4],[2,0,4]],[[6,3,0],[6,3,0]]]
           #   → [[6],[6,6,6],[9,9]]
     O     # Take the sum of each inner list
           #  i.e. [[6],[6,6,6],[9,9]] → [6,18,18]
      Z    # Get the max (without popping the list of sums)
           #  i.e. [6,18,18] → 18
       Q   # Check for each if this max is equal to the sum
           #  i.e. [6,18,18] and 18 → [0,1,1]
        Ï  # Filter the uniquified list of lists on truthy values (and output implicitly)
           #  i.e. [[1,2,3],[2,0,4],[6,3,0]] and [0,1,1] → [[2,0,4],[6,3,0]]

0

গাইয়া , 10 বাইট

ȯẋ_¦Σ¦:⌉=¦

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

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

ȯ           Sort the list
 ẋ          Split it into runs of the same element (in this case, runs of the same row)
  _¦        Flatten each sublist
    Σ¦      Sum each sublist
      :⌉    Find the maximum sum
        =¦  Compare each sum for equality with the maximum

0

জে , 16 বাইট

[:(=>./)+/^:2/.~

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

একটি মোনাডিক ক্রিয়া যা উপস্থিতি ক্রমে বুলিয়ান ফলাফল দেয়।

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

[:(=>./)+/^:2/.~
             /.~  Self-classify; collect identical rows in appearance order
                  For each collected rows (= a matrix),
        +/^:2       Sum all the elements into one value
[:(=>./)          Compute the boolean vector:
    >./             Is the max of the array
   =                equal to this element?
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.