each_cons() - রুবি
each_cons() গণনাযোগ্য পদ্ধতি হল রুবিতে একটি অন্তর্নির্মিত পদ্ধতি যা প্রতিবার প্রতিটি উপাদান থেকে শুরু করে পরপর N উপাদানগুলির জন্য পুনরাবৃত্তি করে। যদি কোন ব্লক দেওয়া না হয়, এটি গণনাকারীকে ফেরত দেয়।
প্রত্যেক_কন্স() এর JS সমতুল্য
ধরুন আমাদের কাছে Number লিটারালের একটি অ্যারে রয়েছে (এই ক্ষেত্রে রুবির গণনার JS সমতুল্য), each_cons ফাংশনটি একটি অ্যারে ফাংশন বলে মনে করা হয় যা অ্যারের প্রতিটি উপাদানের জন্য কার্যকর করে এবং একটি সংখ্যা N (N <=অ্যারের দৈর্ঘ্য) হিসাবে গ্রহণ করে। শুধুমাত্র যুক্তি। এবং প্রতিটি উপাদান থেকে একে একে শুরু করে প্রতিটি সাবয়ারের সাথে N আকারের সাবয়ারের সহ একটি অ্যারে প্রদান করে৷
এর একটি উদাহরণ দিলে বিষয়গুলো একটু পরিষ্কার হবে।
ধরুন আমাদের এইরকম একটি অ্যারে আছে −
const arr =[1, 2, 3, 4, 5];console.log(arr.eachCons(2));
প্রতিটি কনসকে এই কলটি যা করে তা হল, এটি 2টি উপাদান সহ অ্যারের একটি বিন্যাস গঠন করে −
[[1, 2], [2, 3], [3, 4], [4, 5]]
লক্ষ্য করুন যে মূল অ্যারের প্রতিটি উপাদানের জন্য সাব্যারে তৈরি করা হয়েছে যতক্ষণ না আমরা তা করতে পারি।
N-এর মান 2-এর পরিবর্তে 3 হলে, ফলাফলটি −
-এর মতো দেখাত[[1, 2, 3], [2, 3, 4], [3, 4, 5]]
আবার, অ্যারের প্রতিটি উপাদানের জন্য সাব্যারে তৈরি করা হয় যতক্ষণ না আমাদের অ্যারের মধ্যে যথেষ্ট উপাদান থাকে।
পন্থা
এই সমস্যাটি সমাধান করতে আমরা স্লাইডিং উইন্ডো অ্যালগরিদম ব্যবহার করব৷
৷যদিও আমরা আধুনিক ES6 ফাংশন ব্যবহার করে এটিকে দুটি লাইনে সমাধান করতে পারি, তবে পূর্বের পদ্ধতির তুলনায় পূর্বের পদ্ধতিটি খুবই কার্যকর।
প্রথমত, আমরা একটি while লুপ ব্যবহার করব যা 0 থেকে N সূচক পর্যন্ত আমাদের প্রাথমিক উইন্ডো তৈরি করে। তারপর. আমরা একটি লুপ ব্যবহার করব যা চলে যখন আমাদের উইন্ডোর শেষটি মূল অ্যারের দৈর্ঘ্যের চেয়ে কম থাকে৷
এই লুপটি আমাদের উইন্ডোর স্থায়িত্ব পরীক্ষা করে (অর্থাৎ, আমাদের উইন্ডোটির দৈর্ঘ্য N-এর সমান)। যদি উইন্ডোটি স্থিতিশীল থাকে, তাহলে আমরা উইন্ডোটি সন্নিবেশ করি (সেই সাবয়ারেটি ফলাফল অ্যারেতে), এটিকে ইউনিট দূরত্ব দ্বারা ডানদিকে স্লাইড করি এবং এটিকে ভেঙে ফেলুন (অর্থাৎ, শুরু =শেষ)। যদি উইন্ডোটি অস্থির হয়, আমরা এতে উপাদান যোগ করতে থাকি।
এই পদ্ধতির কোড হল −
উদাহরণ
const arr =[1, 2, 3, 4, 5];const eachCons =function(num){ let res =[], temp =[]; যাক শুরু =0, শেষ =0; while(endআউটপুট
কনসোলে আউটপুট হবে −
<পূর্ব>[ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ] ][ [ 1, 2 ], [ 2, 3 ], [ 3, 4 ], [ 4, 5 ] ][ [ 1, 2, 3 ], [ 2, 3, 4 ], [ 3, 4, 5 ] ][ [ 1, 2, 3, 4 ], [ 2, 3, 4, 5 ] ]