বিভ্রান্তিকর ব্যাকগ্রাউন্ড ছাঁটাই!


13

আপনি যখন ছবি তুলছেন তখন কি বিরক্তিকর নয়, তবে ব্যাকগ্রাউন্ডটি চিত্রের আসল পদার্থ থেকে বিচ্ছিন্ন হয়? আমি বলব এটা আছে। আমার কতটা ফসল করা উচিত তা আমার জানতে হবে যাতে আমি এই সমস্যা থেকে মুক্তি পেতে পারি! তবে - যথারীতি - আমি বেশ অলস, তাই আমার জন্য এটি করার জন্য আমার কারও প্রয়োজন ...

কার্য ও বিধি

চিত্রটির প্রতিনিধিত্বকারী একটি বাইনারি ম্যাট্রিক্স দেওয়া হয়েছে, মূল ম্যাট্রিক্সের সমস্ত টি থাকা ক্ষুদ্রতম সাব-ম্যাট্রিক্সের মাত্রা (প্রস্থ এবং উচ্চতা) আউটপুট করুন । একটি সাব-ম্যাট্রিক্স মূল ম্যাট্রিক্স থেকে সংলগ্ন এন্ট্রিগুলির একটি ব্লক। সমানভাবে, এটি সংলগ্ন সারিগুলির উপসেট এবং মূলটির সংলগ্ন কলামগুলির উপসেটকে ওভারল্যাপ করে গঠিত একটি নতুন ম্যাট্রিক্স।1

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

উদাহরণ

[000000010100011011001010000000][101001101101010](5,3)

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

ইনপুট | আউটপুট

[[0,1,0,0,0,1,0]]
-> (5,1) বা (1,5)

[[0,0,0,0,0], [0,1,0,1,0], [0,0,1,0,0]]
-> (3,2) বা (2,3)

[[1,1,1,1], [0,0,0,0], [0,0,0,0], [1,0,0,0]]
-> (4,4)

[[0,0,0,0,0,0], [0,1,0,1,0,1], [0,0,0,0,0,0]]
-> (5,1) বা (1,5)

[[0,0,0,0,0], [0,1,0,1,0], [0,0,1,0,0], [0,1,0,1,0], [ 0,0,0,0,0]]
-> (3,3)

[[0,0,0,0,0,0], [0,1,0,1,0,0], [0,1,1,0,1,1], [0,0,1, 0,1,0], [0,0,0,0,0,0]]
-> (5,3) বা (3,5)

1
এটি খুব পরিচিত বোধ করে ; এটি কিছুক্ষণের জন্য স্যান্ডবক্সে ছিল?
শেগি

8
এটি প্রকৃতপক্ষে লিঙ্কযুক্ত প্রশ্নের খুব কাছাকাছি তবে আমি মনে করি এটির একটি সুদূরপ্রসারী সাবসেট হিসাবে বিবেচনা করা যেতে পারে কারণ প্রকৃত প্রস্থ এবং উচ্চতা গণনা করার জন্য ম্যাট্রিক্স উত্পন্ন করা একেবারেই প্রয়োজনীয় নয়। উদাহরণস্বরূপ, একটি সম্ভাব্য অ্যালগরিদম হ'ল প্রতিটি সারি এবং কলামের জন্য প্রান্তিক শূন্যগুলির ন্যূনতম সংখ্যা গণনা করা এবং সেগুলি মূল মাত্রা থেকে বিয়োগ করা।
মিঃ এক্সকোডার

উত্তর:



5

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

বেনামে ট্যাসিট প্রিফিক্স ফাংশন।

(1+⌈/-⌊/)⍸

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

 1 এস সূচক।

() এটিতে নিম্নোক্ত কাজটি প্রয়োগ করুন:

⌊/ সর্বনিম্ন (সর্বনিম্ন y স্থানাঙ্ক এবং সর্বনিম্ন x স্থানাঙ্ক)

⌈/- সর্বাধিক বিয়োগ যা (এটি আমাদের পরিসর দেয়)

1+ এক যোগ যে (অন্তর্ভুক্ত হতে হবে)


5

অক্টাভা , 57 56 45 বাইট

এখানে findভারী উত্তোলন করা হয়: এটি findsননজারো এন্ট্রিগুলির সারি এবং কলাম সূচক। তারপরে আমাদের কেবল আলাদা আলাদাভাবে প্রত্যেকের জন্য সর্বোচ্চ এবং সর্বনিম্ন (এক প্লাস) এর মধ্যে পার্থক্য খুঁজে বের করতে হবে।

ধন্যবাদ -1 বাইটের জন্য @ বেকার এবং @ আন্ডারসডিক এবং @ 11 লাইটের জন্য লুইস মেন্ডোকে ধন্যবাদ!

@(a){[I{1:2}]=find(a),cellfun(@range,I)}{2}+1

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




3

পাইথন 2 ,  63  55 বাইট

ভিনসেন্টের সাহায্যে -8 (নম্পি অ্যারে হিসাবে ইনপুট ম্যাট্রিক্স নিন)

lambda a:[len(`a.max(x)`[7::3].strip('0'))for x in 0,1]

একটি 2-D সংখ্যার পূর্ণসংখ্যার বিন্যাস (ইন {0,1}) গ্রহণ করে এমন একটি নামহীন ফাংশন যা পূর্ণসংখ্যার একটি তালিকা ফেরত দেয় [width,height],।

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


ননম্পি সংস্করণটি 63৩ বাইটে (এতে পূর্ণসংখ্যার তালিকার একটি তালিকা গ্রহণ করে {0,1}):

lambda a:[len(`map(max,v)`[1::3].strip('0'))for v in zip(*a),a]

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

কিভাবে?

একটি ম্যাট্রিক্স, প্রদত্ত a, forপ্রতিটি ( vTRANSPOSE এর), zip(*a)এবং, aনিজেই আমরা উচ্চতা প্রয়োজনীয় (TRANSPOSE এই হল প্রস্থ দেওয়া হয়) পাবেন।

প্রতি ম্যাপিংয়ের maxমাধ্যমে vশূন্য ও একের একটি তালিকা পাওয়া যায়, যা প্রতিটি সারিতে vকোনও একটি থাকে তা উপস্থাপন করে। এই তালিকার স্ট্রিং উপস্থাপনাটি ব্যাকটিক্স ( `...`) ব্যবহার করে পাওয়া যায় , এটি একটি শীর্ষস্থানীয় এর সাথে একটি স্ট্রিং দেয় [, তারপরে শূন্যগুলি এবং , (কমা + স্পেস) দ্বারা বিসীমাবদ্ধ । [1::3]আমাদের কেবল তিনটি শূন্য এবং একটির স্ট্রিং ব্যবহার করে তিনটি ধাপে সূচকগুলির এক থেকে শুরু করে এই স্ট্রিংটি টুকরো টুকরো করে দেয়, যা আমাদের stripবাহ্যিক শূন্যগুলি ( strip('0')) সরাতে স্ট্রিং ফাংশনটি ব্যবহার করতে দেয় ।

উদাহরণ স্বরূপ:

      a = [[0,0,0,0,0]           map(max,a)                    = [0,1,1]
          ,[0,1,0,0,0]          `map(max,a)`[1::3]             = '011'
          ,[0,0,0,1,0]]         `map(max,a)`[1::3].strip('0')  = '11'
                            len(`map(max,a)`[1::3].strip('0')) = 2

zip(*a) = [(0,0,0)         map(max,zip(*a))                    = [0,1,0,1,0]
          ,(0,1,0)        `map(max,zip(*a))`[1::3]             = '01010'
          ,(0,0,0)        `map(max,zip(*a))`[1::3].strip('0')  = '101'
          ,(0,0,1)    len(`map(max,zip(*a))`[1::3].strip('0')) = 3
          ,(0,0,0)]

    --> [len(`map(max,v)`[1::3].strip('0'))for v in zip(*a),a] = [3,2]

একটি নমপি অ্যারে ব্যবহার করে 57 বাইট
ভিনসেন্ট

যদি আমরা একটি অন্তর্নির্মিত প্রকার হিসাবে ইনপুট গ্রহণ করি তবে আমাদের তা করার অনুমতি দেওয়ার জন্য আমাদের কি কোনও ধরণের আমদানির বিবৃতি গণনা করা উচিত নয়? (এটি কেবলমাত্র আমাদের পোস্টটির শিরোনাম "অজগর দিয়ে পাইথন 2" করতে হবে - আমি সম্পূর্ণ নিশ্চিত নই) ... আপনার যদি কিছু সময় থাকে তবে আপনি উনিশতম বাইট চ্যাট রুমে জিজ্ঞাসা করতে পারেন?
জোনাথন অ্যালান


1
আমি পিপিসিজি মেটাতে সত্যিই একটি পরিষ্কার উত্তর খুঁজে পাইনি , সুতরাং আমি এটি সম্পর্কে নিশ্চিত নই। এবং হ্যাঁ, সত্যই 55 বাইট :)
ভিনসেন্ট

1
আমি শুধু জিজ্ঞেস করলাম. এই পোস্ট অনুযায়ী , আমদানি অন্তর্ভুক্ত করা হবে না।
ভিনসেন্ট

1

রেটিনা 0.8.2 , 83 বাইট

+`^0+¶|¶0+$

+1`((.)*).(¶(?<-2>.)*).(?<=(1)¶.*|(.))
$1$3$4$5
(¶?)*0*(.*1)0*
$#1 $.2

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

+`^0+¶|¶0+$

নেতৃস্থানীয় এবং অনুসরণ শূন্য সারি মুছুন।

+1`((.)*).(¶(?<-2>.)*).(?<=(1)¶.*|(.))
$1$3$4$5

0শেষের উপরের লাইনে সমস্ত গুলি সরান । সমস্ত 1দুটি দুটি সরান , তবে পরবর্তী লাইনের নীচে অঙ্কটি 1সেই ক্ষেত্রে একটিতে পরিবর্তন করুন । এই বিটওয়াইস বা সারি একসাথে।

(¶?)*0*(.*1)0*
$#1 $.2

প্রথম এবং শেষ 1 এর মধ্যে অঙ্কের সংখ্যা হিসাবে নিউলাইন প্লাস 1 এবং কলামগুলির সংখ্যা হিসাবে সারি সংখ্যা গণনা করুন।




1

গণিত, 34 বাইট

Max@#-Min@#+1&/@(#~Position~1)&

খাঁটি ফাংশন। ইনপুট হিসাবে পূর্ণসংখ্যার নেস্টেড তালিকা নেয় এবং আউটপুট হিসাবে দুটি পূর্ণসংখ্যার (প্রস্থের পরে উচ্চতা) একটি তালিকা দেয়। ইউনিকোড অক্ষরটি ইউ + এফ 3 সি 7 এর জন্য \[Transpose]



1

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

ζ‚Oε0Û0Üg

-২ বাইটস @ মিঃ এক্সএক্সকোডারকে ধন্যবাদ ।

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

ব্যাখ্যা:

ζ            # Swap the rows and columns of the (implicit) input-list
            # Pair it with the (implicit) input-list
  O          # Take the sum of each column and row
   ε         # Map Both the list of column-sums and list of row-sums to:
    0Û       #  Remove all leading zeros
      0Ü     #  Remove all trailing zeros
        g    #  Take the length of the remaining lists

1
ζ‚Oε0Û0Üg2 বাইট সঞ্চয়
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার অবশ্যই। আমি ইতিমধ্যে সেই অদলবদল নিয়ে খুব বেশি খুশি ছিলাম না। বিশ্বাস করতে পারি না আমি এই জুটিটি প্রথমে করার আগে এবং যোগফলের তুলনায়
ভেবে দেখিনি



0

জাপট, 16 15 বাইট

[UUy]®=ðd)ÎaZÌÄ

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


ব্যাখ্যা

[   ]               :Create an array containing
 U                  : The input and
  Uy                : The input transposed
     ®              :Map each Z
       ð            : Indices of elements where
        d           :  Any element is truthy (not 0)
      =  )          : Reassign to Z
          Î         : First element
           a        : Absolute difference with
            ZÌ      :  Last element
              Ä     :   Plus 1

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