একটি ম্যাট্রিক্স রূপান্তর করুন


16

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

কেবলমাত্র চারটি অर्थোগোনাল দিকের প্রতিবেশীরা বিবেচনা করা হয়, এবং প্রান্তগুলি প্রায় মোড়ানো হয় না।

উদাহরণ ইনপুট:

 1  2  3
 4 -1 -2
-3 -4 10
 1  2 10

আউটপুট:

 6  4  2
 1  6 13
 5 12 10
 2 11 12

নিয়মাবলী:

  • ইনপুট হিসাবে ব্যবহার পূর্ণসংখ্যার।
  • এটি একটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।

3
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! কোন সমাধানটি জিততে হবে তা নির্বিচারে নির্ধারণ করতে এখানে সমস্ত চ্যালেঞ্জগুলির একটি উদ্দেশ্যমূলক বিজয়ী মানদণ্ড প্রয়োজন। সাধারণত, এটি কোড-গল্ফ , যার অর্থ বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী। তদ্ব্যতীত, বৈধ ইনপুট / আউটপুট ফর্ম্যাটগুলি (2 ডি অ্যারে? একক স্ট্রিং? ইত্যাদি) নির্দিষ্ট করা সহায়ক হবে। অবশেষে, এমন কয়েকটি প্রান্তের মামলা রয়েছে যা আপনি coveredেকে রাখেন নি; উদাহরণস্বরূপ, কোনও সংখ্যা কি কখনও নেতিবাচক সংখ্যার দ্বারা ঘিরে থাকবে?
Doorknob

ধন্যবাদ. আমার ধারণা [100] [100] পর্যন্ত, এবং হ্যাঁ একটি সংখ্যা নেতিবাচক সংখ্যার দ্বারা ঘিরে থাকবে।
এমটি

কোন উপায়ে আমরা ইনপুট নিতে পারি?
মাল্টেসেন

1
@ ডুরকনব খালি সংখ্যার সমষ্টি 0
orlp

মাল্টেসেন এসটিডিন, আমার ধারণা
এমটি

উত্তর:


10

এমএটিএল , 9 বাইট

t0>*1Y6Z+

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

ব্যাখ্যা

ইনপুট ম্যাট্রিক্সটি 0 টির সমান নেগেটিভ মানগুলি তৈরি করার জন্য উপযুক্ত মুখোশ দ্বারা গুপ্ত করা হয় Then

t     % Take input implicitly: 2D array. Duplicate
0>    % Is each entry positive? This gives a mask of positive values
*     % Multiply: set negative values of input array to zero
1Y6   % Predefined literal: [0 1 0; 1 0 1; 0 1 0]
Z+    % 2D convolution preserving size. Implicitly display

4
ফোনগুলি কি I / O হিসাবে অনুমোদিত?
orlp

ঠিক আছে, তবে আমি সন্দেহ করি যদি এটি পরাজিত হয় তবে: পি
আদনান

পাইথনে @ আদনান এটি নয়
আর কাপ,

4
এই লোকটি ফোনে থাকাকালীন এই কাজটি করেছিল এবং আমি এখানে এসেছি, এর মধ্যে কিছু সমস্যা সমাধানের চেষ্টা করার জন্য আমার কিছুটা সময় উত্সর্গ করতে হবে ...
আর কাপ,

@ আর.ক্যাপের অর্থ "ফোন থেকে টাইপ করা" (ফোনে কথা বলার সময় টাইপ করা হয়নি)। আমার ইংরেজি :-)
লুইস মেন্ডো

7

অক্টাভা, 46 44 40 বাইট


@ ফ্লোয়ারকে ধন্যবাদ 2 বাইট সংরক্ষণ করা হয়েছে @ লুইস মেন্ডোর কার্নেলটি @ ফ্লাওয়ারের চেয়ে 4 বাইট কম ছিল।

@(M)conv2(M.*(M>0),(x='aba')~=x','same')

ঠিক যেমন @ লুইসমেডোর উত্তর! কেবল কম ... গোল্ফ

আপনি এখানে এটা দেখতে পারেন ideone


কমন, আমি এই সঠিক উত্তরটি পোস্ট করতে চলেছিলাম।
flawr

1
আপনি (x='aba')~=x'পরিবর্তে 6 বাইট ব্যবহার করে ব্যবহার করতে পারেন[0 1 0;1 0 1;0 1 0]
লুইস মেন্ডো

2
@ লুইস মেন্ডো এই জাদুবিদ্যা কি?
বেকার

1
@ কেটটি .*উপাদান অনুসারে ম্যাট্রিক্সের গুণ lic বুলিয়ান ম্যাট্রিক্স হ'ল, ম্যাটল্যাবটি মূলত টাইপলেস, সংখ্যা হিসাবে বিবেচিত। তাই M>0শুধু একটি মুখোশ হিসাবে অভিনয় করা হয়।
বেকার

1
(x='aba')~=x'। এটি দুর্দান্ত লুইস!
স্টিভি গ্রিফিন

2

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

a=>a.map((b,i)=>b.map((_,j)=>(g=(c=j,k=j)=>c[k]>0&&c[k])(a[i-1])+g(a[i+1])+g(b,j-1)+g(b,j+1)))

দ্বিমাত্রিক অ্যারে গ্রহণ করে এবং প্রদান করে।

সম্পাদনা করুন: যখন আমি স্পষ্টভাবে অপরিজ্ঞাতকৃত মানটি পাস করি, যখন আপনি কোনও অ্যারের শেষের সূচনা করে তখন ডিফল্ট আর্গুমেন্টগুলি কাজ করে যখন পুরোপুরি পুনরায় লেখা হয়।



@ সোসিয়েজ নিলস সংস্করণটি পুরানো।
flawr

@ ফ্লোয়ার কিছু লোক এই বার্তা শৃঙ্খলাটি ভোটের অর্থে পোস্টের তারিখের অর্ডারে নয়, তাই আমি সম্পর্কিত উত্তরটি মন্তব্য করেছি। এটির ব্যবহারকারীর চেয়ে 4 বাইট বেশি।
ascx

তাহলে আপনি মূলত অন্য পোস্টের বিজ্ঞাপন দিতে চান ??
flawr

@ সোসিয়েলজ 4 বাইট দীর্ঘ ছিল, হ্যা ;-)
নীল



0

ম্যাথক্যাড, বাইটস

একটি 3x3 কার্নেল দিয়ে ফিল্টার করা অ্যারের মান 2D কনভোলশন ব্যবহার করে Uses নেতিবাচক উপাদানের অঙ্কগুলি এবং তির্যক কার্নেল সহ বৈকল্পিকগুলি প্রোগ্রামের জন্য ক্ষতিপূরণ হিসাবে অংশ অন্তর্ভুক্ত করেছে যা কমপক্ষে বাইটের জন্য চলছে না।

এখানে চিত্র বর্ণনা লিখুন


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

মনে রাখবেন যে উপরের চিত্রটিতে আপনি যা দেখছেন তা হ'ল ম্যালক্যাডে সলিউশনটি কীভাবে প্রবেশ করা এবং প্রদর্শিত হয়।


0

জেলি, 23 20 18 বাইট

0;+ḊṖ
ZÇ€Z+Ç€
+AHÇ

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

অ্যালগরিদম

ধরা যাক একটি মাত্র সারি আছে: [1,2,3,4]।

আসুন ধরা যাক এ হ'ল শূন্যের অর্থ প্রদানের ফলস্বরূপ, [0,1,2,3,4]।

বি প্রথম আইটেম, অর্থাৎ [২,৩,৪] অপসারণের ফলাফল।

তারপরে চূড়ান্ত ফলাফলটি কেবল এ + বি ভেক্টরাইজড, তারপরে শেষ আইটেমটি সরিয়ে ফেলতে হবে।

এখন, অ্যালগরিদমটি প্রতিটি সারি পাশাপাশি প্রতিটি কলামে এটি প্রয়োগ করতে হবে, তারপরে তাদের ভেক্টরযুক্ত সমষ্টিটি সন্ধান করুন।

প্রতিটি কলামে ?! আমি ভেবেছিলাম জেলি এটি সমর্থন করে না ...

তুমি ঠিক বলছো. অতএব, আমি এটিকে স্থানান্তর করেছি, প্রতিটি সারিতে প্রয়োগ করেছি, আবার এটি স্থানান্তর করেছি।

নেতিবাচক সংখ্যা অপসারণের জন্য অ্যালগরিদম

এখানে, আপনি কেবল প্রতিটি সংখ্যায় তাদের নিখুঁত যোগ করুন। প্রতিটি ইতিবাচক সংখ্যা দ্বিগুণ করার সময় এটি কার্যকরভাবে নেতিবাচক সংখ্যাগুলি সরিয়ে দেয়। তারপরে, পুরো ম্যাট্রিক্সটি অর্ধেক করুন।


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