এই চ্যালেঞ্জটি এমএটিএল ভাষার কিছু বৈশিষ্ট্যের সাথে সম্পর্কিত, মে 2018 এর ভাষার ইভেন্ট ইভেন্টের অংশ হিসাবে ।
ভূমিকা
এমএটিএলে, অনেকগুলি দুটি ইনপুট ফাংশন সম্প্রচারের সাথে উপাদান অনুসারে কাজ করে । এর অর্থ নিম্নলিখিতগুলি:
উপাদান অনুসারে (বা ভেক্টরাইজড ): ফাংশনটি মাপানো মাপের সাথে দুটি অ্যারে ইনপুট হিসাবে গ্রহণ করে। ক্রিয়াকলাপ দ্বারা সংজ্ঞায়িত অপারেশন প্রতিটি জোড় সংশ্লিষ্ট এন্ট্রিগুলিতে প্রয়োগ করা হয়। উদাহরণস্বরূপ, পোস্ট-ফিক্স স্বরলিপি ব্যবহার করে:
[2 4 6] [10 20 30] +
আউটপুট দেয়
[12 24 36]
এটি বহুমাত্রিক অ্যারেগুলির সাথেও কাজ করে। স্বরলিপিটি × অ্যারে (ম্যাট্রিক্স)
[1 2 3; 4 5 6]
উপস্থাপন করে2
3
1 2 3 4 5 6
যার
2
প্রথম মাত্রা (উল্লম্ব) এবং3
দ্বিতীয় (অনুভূমিক) বরাবর আকার রয়েছে । উদাহরণস্বরূপ[2 4 6; 3 5 7] [10 20 30; 40 60 80] *
[20 80 180; 120 300 560]
ব্রডকাস্টিং বা ( সিঙ্গলটন সম্প্রসারণ ): দুটি ইনপুট অ্যারের সাথে মাপের আকার নেই, তবে প্রতিটি অ-মিলের মাত্রায় অ্যারেগুলির একটির আকার রয়েছে
1
। এই অ্যারেটি মাপের ম্যাচ তৈরির জন্য অন্যান্য মাত্রার সাথে স্পষ্টভাবে প্রতিলিপি করা হয়েছে; এবং তারপরে উপরের মত অপারেশনটি উপাদান অনুসারে প্রয়োগ করা হবে। উদাহরণস্বরূপ, আকারের সঙ্গে দুটি ইনপুট অ্যারে বিবেচনা1
×2
এবং3
×1
:[10 20] [1; 2; 5] /
সম্প্রচারের জন্য ধন্যবাদ, এটি সমান
[10 20; 10 20; 10 20] [1 1; 2 2; 5 5] /
এবং তাই এটি দেয়
[10 20; 5 10; 2 4]
একইভাবে, আকারের সঙ্গে
3
×2
এবং3
×1
(বর্তমানে সম্প্রচার দ্বিতীয় মাত্রা বরাবর কাজ করে শুধুমাত্র),[9 8; 7 6; 5 4] [10; 20; 30] +
[19 18; 27 26; 35 34]
মাত্রা সংখ্যা এমনকি পৃথক হতে পারে। উদাহরণস্বরূপ, 3 × 2 এবং 3 × 1 × 5 আকারের ইনপুটগুলি সামঞ্জস্যপূর্ণ এবং একটি 3 × 2 × 5 ফলাফল দেয়। প্রকৃতপক্ষে, আকার 3 × 2 3 × 2 same 1 এর সমান (সেখানে নির্বিচারে অনেকগুলি অন্তর্নিহিত ট্রেইলিং সিঙ্গলটন মাত্রা রয়েছে)।
অন্যদিকে, একজোড়া
2
×2
এবং3
×1
অ্যারে একটি ত্রুটি, দিতে হবে কারণ প্রথম মাত্রা বরাবর মাপ হয়2
এবং3
তারা সমান নয় এবং তাদের কেউ নেই1
।
মডুলার সম্প্রচারের সংজ্ঞা
মডুলার সম্প্রচার হ'ল সম্প্রচারের একটি সাধারণীকরণ যা মিল না-করা মাপের কোনওটি না হলেও কার্যকর হয় 1
। উদাহরণস্বরূপ ফাংশনের ইনপুট হিসাবে নিম্নলিখিত 2
× 2
এবং 3
× 1
অ্যারেগুলি বিবেচনা করুন +
:
[2 4; 6 8] [10; 20; 30] +
নিয়মটি নিম্নরূপ: প্রতিটি মাত্রার জন্য, সেই মাত্রাটি বরাবর ছোট ছোট অ্যারেটিকে অন্য অ্যারের আকারের সাথে মেলাতে মডুলারালি (চক্রাকারে) প্রতিলিপি করা হয় । এটি উপরের সমতুল্য হবে
[2 4; 6 8; 2 4] [10 10; 20 20; 30 30] +
ফলাফল সহ
[12 14; 26 28; 32 34]
দ্বিতীয় উদাহরণ হিসাবে,
[5 10; 15 20] [0 0 0 0; 1 2 3 4; 0 0 0 0; 5 6 7 8; 0 0 0 0] +
উত্পাদন করা হবে
[5 10 5 10; 16 22 18 24; 5 10 5 10; 20 26 22 28; 5 10 5 10]
সাধারণভাবে, আকারের সঙ্গে ইনপুট a
× b
এবং c
× d
দিতে আকার ফলে max(a,b)
× max(c,d)
।
চ্যালেঞ্জ
বাস্তবায়ন উপরন্তু জন্য দ্বি-মাত্রিক সঙ্গে অ্যারে মডুলার সম্প্রচার উপরের হিসাবে সংজ্ঞায়িত।
অ্যারেগুলি আয়তক্ষেত্রাকার হবে (র্যাগড নয়) কেবল অ-নেতিবাচক পূর্ণসংখ্যা থাকবে এবং প্রতিটি মাত্রায় কমপক্ষে আকার1
থাকবে ।
প্রশাসনিক নিয়ম:
ইনপুট এবং আউটপুট যে কোনও যুক্তিসঙ্গত উপায়ে নেওয়া যেতে পারে । তাদের ফর্ম্যাটটি যথারীতি নমনীয়।
কোনও প্রোগ্রামিং ভাষায় প্রোগ্রাম বা ফাংশন অনুমোদিত । স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ ।
বাইটস মধ্যে সংক্ষিপ্ত কোড।
পরীক্ষার মামলা
;
সারি বিভাজক হিসাবে নিম্নলিখিতটির ব্যবহার (উপরের উদাহরণগুলির মতো)। প্রতিটি পরীক্ষার ক্ষেত্রে দুটি ইনপুট এবং তারপরে আউটপুট প্রদর্শিত হয়।
[2 4; 6 8]
[10; 20; 30]
[12 14; 26 28; 32 34]
[5 10; 15 20]
[0 0 0 0; 1 2 3 4; 0 0 0 0; 5 6 7 8; 0 0 0 0]
[5 10 5 10; 16 22 18 24; 5 10 5 10; 20 26 22 28; 5 10 5 10]
[1]
[2]
[3]
[1; 2]
[10]
[11; 12]
[1 2 3 4 5]
[10 20 30]
[11 22 33 14 25]
[9 12 5; 5 4 2]
[4 2; 7 3; 15 6; 4 0; 3 3]
[13 14 9;12 7 9;24 18 20;9 4 6;12 15 8]
[9 12 5; 5 4 2]
[4 2 6 7; 7 3 7 3; 15 6 0 1; 4 0 1 16; 3 3 3 8]
[13 14 11 16; 12 7 9 8; 24 18 5 10; 9 4 3 21; 12 15 8 17]
[6 7 9]
[4 2 5]
[10 9 14]
1
× n
(যেমন [1 2 3]
) অথবা n
× 1
(যেমন [1; 2; 3]
)