সুতরাং আমি এটি একটি অদ্ভুত উপায়। আমি লক্ষ করেছি যে অ্যারে ফর্ম দুটি উপায় আছে।
প্রথম হ'ল শীর্ষ সারির প্যাটার্নটিতে প্রতিটি পদ 1 -> h থেকে বাড়ার পার্থক্য রয়েছে যেখানে h উচ্চতা এবং l দৈর্ঘ্য। সুতরাং আমি সেই প্যাটার্নের ভিত্তিতে উপরের সারিটি তৈরি করি
ম্ল্যাটিকের ম্যাট্রিক্সের জন্য (3,4) একটি দেওয়ার জন্য max RoC = 3
আমরা ফর্মের উপরের সারিটি দেখতে পাব
1, (1+1), (2+2), (4+3) = 1, 2, 4, 7
এর পরিবর্তে ধরুন যে max RoC = 3
আমরা দিচ্ছি এমন ম্লান (3,9) পরিবর্তে একটি শীর্ষ সারি দেখতে পাবে
`1, (1+1), (2+2), (4+3), (7+3), (10+3), (13+3), (16+3), (19+3) = 1, 2, 4, 7, 10, 13, 16, 19, 22
দ্বিতীয় প্যাটার্নটি হ'ল কীভাবে সারিগুলি একে অপর থেকে পরিবর্তিত হয়। যদি আমরা ম্যাট্রিক্স বিবেচনা করি:
1 2 4 7 11
3 5 8 12 16
6 9 13 17 20
10 14 18 21 23
15 19 22 24 25
এবং নীচের সারি থেকে প্রতিটি সারিটি বিয়োগ করুন (অতিরিক্ত সারি উপেক্ষা করে) get
2 3 4 5 5
3 4 5 5 4
4 5 5 4 3
5 5 4 3 2
এই ম্যাট্রিক্সটি দেখে আমরা লক্ষ্য করতে পারি এই ম্যাট্রিক্সটি ক্রমটি 2 3 4 5 5 4 3 2
যেখানে প্রতিটি সারি দ্বারা প্রতিটি সারিটির জন্য 1 দ্বারা স্থানান্তরিত এই প্যাটার্নটির 5 পদ রয়েছে। চাক্ষুষ জন্য নীচে দেখুন।
|2 3 4 5 5| 4 3 2
2 |3 4 5 5 4| 3 2
2 3 |4 5 5 4 3| 2
2 3 4 |5 5 4 3 2|
সুতরাং চূড়ান্ত ম্যাট্রিক্স পেতে আমরা আমাদের প্রথম সারিটি তৈরি করি এবং আমরা এই প্যাটার্নটির 5 প্রয়োজনীয় শর্তাদি যোগ করে সেই সারিটি আউটপুট করি।
এই প্যাটার্নটিতে সর্বদা শুরু 2-> max value
এবং শেষের বৈশিষ্ট্য থাকবে max value -> 2
যেখানে max value = min(h+1, l)
সর্বাধিক মানটি প্রদর্শিত হবে এবং তার সংখ্যাটি appearances of max = h + l -2*c -2
কোথায়c = min(h+1, l) - 2
সুতরাং নতুনভাবে আমার সারি তৈরির পদ্ধতিটি পুরোপুরি দেখাচ্ছে
1 2 3 7 11 + |2 3 4 5 5|4 3 2 = 3 5 8 12 16
3 5 8 12 16 + 2|3 4 5 5 4|3 4 2 = 6 9 13 17 20
6 9 13 17 20 + 2 3|4 5 5 4 3|4 2 = 10 14 18 21 23
10 14 18 21 23 + 2 3 4|5 5 4 3 2| = 15 19 22 24 25
নীচে সম্পর্কিত কোড। এটি সংক্ষিপ্ত হওয়া শেষ হয়নি তবে আমি এখনও পদ্ধতিটি পছন্দ করি।
o,r=len,range
def m(l,h):
a,t=[1+sum(([0]+[x for x in r(1,h)]+[h]*(l-h))[:x+1]) for x in r(l)],min(l,h+1);s,c=[x for x in r(2,t)],[a[:]]
for i in r(h-1):
for j in r(o(a)):
a[j]+=(s+[t]*(l+h-2*(t-2)-2)+s[::-1])[0+i:l+i][j]
c+=[a[:]]
for l in c:print(l)
এটি অনলাইন চেষ্টা করুন!