এমএটিএল , 22 20 19 বাইট
Ti:"2Y6Y+FT_Y)]!i_)
উভয় ইনপুট 0-ভিত্তিক।
এটি অনলাইন চেষ্টা করুন!
ব্যাখ্যা
যাক r
এবং c
দুটি ইনপুট যথাক্রমে উল্লেখ 0 ভিত্তিক সারি ও কলাম বোঝান।
পাস্কালের রম্বসের প্রতিটি নতুন সারি কার্নেলের সাথে মিশ্রিত করে [1 1 1; 0 1 0]
এবং ফলাফলের শেষ দুটি সারিটি অদলবদল করে আগের দুটি সারি যুক্ত ম্যাট্রিক্স থেকে তৈরি করা যেতে পারে । এটি r
ম্যাট্রিক্স থেকে শুরু করে বার করা হয় 1
।
এটি কার্নেলটি ব্যবহার করার জন্য আরও সংক্ষিপ্ত হয়ে গেছে [0 1 0; 1 1 1; 0 1 0]
যা পূর্বনির্ধারিত আক্ষরিক। এটি একটি অতিরিক্ত সারি তৈরি করে, যা বাতিল করা হবে।
উদাহরণস্বরূপ বিবেচনা করুন r = 3
, তাই 3
পুনরাবৃত্তি আছে।
থেকে শুরু করে
1
[0 1 0; 1 1 1; 0 1 0]
দেয় সঙ্গে সমঝোতা
0 1 0
1 1 1
0 1 0
শেষ দুটি সারি রাখা (পুরো ম্যাট্রিক্স, এক্ষেত্রে) এবং এগুলি অদলবদল দেয়
0 1 0
1 1 1
[0 1 0; 1 1 1; 0 1 0]
দেয় সঙ্গে উপরের ধারণা
0 0 1 0 0
0 1 1 1 0
1 2 4 2 1
0 1 1 1 0
শেষ দুটি সারি দ্বারা পরিবর্তিত ম্যাট্রিক্স অদলবদল হয়
0 1 1 1 0
1 2 4 2 1
এটিতে নীচে নতুন সারিটি রয়েছে এবং পূর্বেরটি শূন্যের সাথে প্রসারিত রয়েছে।
পুনরায় কনভলভিং ফলন দেয়
0 0 1 1 1 0 0
0 1 2 3 2 1 0
1 3 8 9 8 3 1
0 1 2 4 2 1 0
সর্বশেষ দুটি সারি গ্রহণ করে দেয়
0 1 2 4 2 1 0
1 3 8 9 8 3 1
r
পুনরাবৃত্তি সম্পন্ন হওয়ার পরে , আউটপুটটি চূড়ান্ত ম্যাট্রিক্সের শেষ সারিতে থাকে। উদাহরণস্বরূপ, c = 2
(0-ভিত্তিক) ফলাফল হবে 8
। শেষ সারি এবং পছন্দসই কলামটি সূচী না করে, এমন কৌশল ব্যবহার করা যেতে পারে যা প্রতিটি সারির প্রতিসাম্যকে কাজে লাগায় : চূড়ান্ত ম্যাট্রিক্স স্থানান্তরিত হয়
0 1
1 3
2 8
4 9
2 8
1 3
0 1
এবং এর- -c
তম উপাদানটি নেওয়া হয়। এই ব্যবহারের রৈখিক ইন্ডেক্স, যে ম্যাট্রিক্স একটি দ্বারা সূচিবদ্ধ একক সূচক মধ্যে কলাম-প্রধান অর্ডার। যেহেতু ইনডেক্সিং মডুলার , 0
-তন্ত্রটি নিম্ন-ডান কোণার (মান 1
) এবং -2
তম -প্রবেশটি দুটি ধাপ উপরে (মান 8
)।
T % Push true
i % Input row number
:" % Do the following that many times
2Y6 % Push predefined literal [0 1 0; 1 1 1; 0 1 0]
Y+ % 2D convolution, increasing size
FT_ % Push [0 -1]
Y) % Matrix with rows 0 (last) and -1 (second-last), in that order
] % End
! % Transpose
i % Input: colun number
_ % Negate
) % Entry with that index. Implicitly display