কী পার্থক্য – পুনরাবৃত্তি বনাম পুনরাবৃত্তি
পুনরাবৃত্তি এবং পুনরাবৃত্তি প্রোগ্রামিং সমস্যা সমাধানের জন্য ব্যবহার করা যেতে পারে। পুনরাবৃত্তি বা পুনরাবৃত্তি ব্যবহার করে সমস্যা সমাধানের পদ্ধতি সমস্যা সমাধানের উপায়ের উপর নির্ভর করে। পুনরাবৃত্তি এবং পুনরাবৃত্তির মধ্যে মূল পার্থক্য হল যে পুনরাবৃত্তি হল একই ফাংশনের মধ্যে একটি ফাংশনকে কল করার একটি পদ্ধতি যখন পুনরাবৃত্তি হল প্রদত্ত শর্তটি সত্য না হওয়া পর্যন্ত বারবার নির্দেশাবলীর একটি সেট চালানো। অ্যালগরিদম তৈরি এবং সফ্টওয়্যার অ্যাপ্লিকেশন তৈরির জন্য পুনরাবৃত্তি এবং পুনরাবৃত্তি হল প্রধান কৌশল৷
রিকারশন কি?
যখন একটি ফাংশন ফাংশনের মধ্যে নিজেকে কল করে, তখন এটি পুনরাবৃত্তি নামে পরিচিত। পুনরাবৃত্তি দুই ধরনের হয়. তারা সসীম পুনরাবৃত্তি এবং অসীম পুনরাবৃত্তি. সসীম পুনরাবৃত্তির একটি সমাপ্ত অবস্থা আছে। অসীম পুনরাবৃত্তির কোন সমাপ্তি শর্ত নেই।
ফ্যাক্টোরিয়াল গণনা করার জন্য প্রোগ্রাম ব্যবহার করে পুনরাবৃত্তি ব্যাখ্যা করা যেতে পারে।
n!=n(n-1), যদি n>0
n!=1, যদি n=0;
3(3!=321) এর ফ্যাক্টরিয়াল গণনা করতে নিচের কোডটি পড়ুন।
অন্তর্ভুক্ত () {
int মান=ফ্যাক্টরিয়াল (3);
printf("ফ্যাক্টোরিয়াল হল %d\n", মান);
রিটার্ন 0;
}
ইনফ্যাক্টোরিয়াল (intn) {
if(n==0) {
রিটার্ন ১;
}
অন্য {
রিটার্ন n ফ্যাক্টোরিয়াল(n-1);
}
}
ফ্যাক্টোরিয়াল (3) কল করার সময়, সেই ফাংশনটি ফ্যাক্টোরিয়াল (2) কল করবে। ফ্যাক্টোরিয়াল (2) কল করার সময়, সেই ফাংশনটি ফ্যাক্টোরিয়াল (1) কল করবে। তারপর ফ্যাক্টোরিয়াল (1) ফ্যাক্টোরিয়াল (0) কল করবে। ফ্যাক্টোরিয়াল (0) 1 রিটার্ন করবে। উপরের প্রোগ্রামে, “if block”-এ n==0 শর্ত হল বেস কন্ডিশন।একইভাবে, ফ্যাক্টোরিয়াল ফাংশনকে বারবার বলা হয়।
পুনরাবৃত্ত ফাংশন স্ট্যাকের সাথে সম্পর্কিত। সি-তে, প্রধান প্রোগ্রামের অনেকগুলি ফাংশন থাকতে পারে। সুতরাং, main() হল কলিং ফাংশন, এবং যে ফাংশনটিকে মেইন প্রোগ্রাম দ্বারা কল করা হয় তাকে ফাংশন বলা হয়। যখন ফাংশন কল করা হয়, তখন কন্ট্রোল বলা হয় ফাংশনে। ফাংশন সঞ্চালন সম্পন্ন হওয়ার পরে, নিয়ন্ত্রণটি মূলে ফিরে আসে। এরপর চলবে মূল কর্মসূচি। সুতরাং, এটি এক্সিকিউশন চালিয়ে যাওয়ার জন্য একটি অ্যাক্টিভেশন রেকর্ড বা একটি স্ট্যাক ফ্রেম তৈরি করে৷
চিত্র 01: পুনরাবৃত্তি
উপরের প্রোগ্রামে, মেইন থেকে ফ্যাক্টোরিয়াল (3) কল করার সময়, এটি কল স্ট্যাকে একটি অ্যাক্টিভেশন রেকর্ড তৈরি করে। তারপর, ফ্যাক্টরিয়াল (2) স্ট্যাক ফ্রেম স্ট্যাকের উপরে তৈরি করা হয় এবং তাই। অ্যাক্টিভেশন রেকর্ড স্থানীয় ভেরিয়েবল ইত্যাদি সম্পর্কে তথ্য রাখে। প্রতিবার যখন ফাংশন কল করা হয়, স্ট্যাকের উপরে স্থানীয় ভেরিয়েবলের একটি নতুন সেট তৈরি করা হয়। এই স্ট্যাক ফ্রেমগুলি গতি কমিয়ে দিতে পারে। একইভাবে পুনরাবৃত্তিতে, একটি ফাংশন নিজেই কল করে। একটি পুনরাবৃত্ত ফাংশনের জন্য সময় জটিলতা বার সংখ্যা দ্বারা পাওয়া যায়, ফাংশন বলা হয়. একটি ফাংশন কলের সময় জটিলতা হল O(1)। n নম্বর পুনরাবৃত্ত কলের জন্য, সময়ের জটিলতা হল O(n)।
পুনরাবৃত্তি কি?
পুনরাবৃত্তি হল নির্দেশের একটি ব্লক যা প্রদত্ত শর্তটি সত্য না হওয়া পর্যন্ত বারবার পুনরাবৃত্তি হয়। "লুপের জন্য", "ডু-হাইল লুপ" বা "হোয়াইল লুপ" ব্যবহার করে পুনরাবৃত্তি অর্জন করা যেতে পারে। "ফর লুপ" সিনট্যাক্স নিম্নরূপ।
এর জন্য (শুরু করা; শর্ত; সংশোধন) {
// বিবৃতি;
}
চিত্র 02: "লুপ ফ্লো ডায়াগ্রামের জন্য"
প্রাথমিকীকরণের ধাপ প্রথমে সঞ্চালিত হয়। এই ধাপটি লুপ কন্ট্রোল ভেরিয়েবল ঘোষণা এবং শুরু করা। শর্তটি সত্য হলে, কোঁকড়া ধনুর্বন্ধনীর ভিতরের বিবৃতিগুলি কার্যকর হয়। শর্তটি সত্য না হওয়া পর্যন্ত এই বিবৃতিগুলি কার্যকর হয়। যদি শর্তটি মিথ্যা হয়, তাহলে নিয়ন্ত্রণটি "ফর লুপ" এর পরে পরবর্তী বিবৃতিতে যায়। লুপের ভিতরে বিবৃতিগুলি কার্যকর করার পরে, নিয়ন্ত্রণটি পরিবর্তন বিভাগে চলে যায়। এটি লুপ নিয়ন্ত্রণ ভেরিয়েবল আপডেট করা হয়. তারপর আবার অবস্থা পরীক্ষা করা হয়।শর্তটি সত্য হলে, কোঁকড়া ধনুর্বন্ধনীর ভিতরের বিবৃতিগুলি কার্যকর হবে৷ এইভাবে "লুপের জন্য" পুনরাবৃত্তি হয়৷
“while loop”-এ, শর্তটি সত্য না হওয়া পর্যন্ত লুপের ভিতরের বিবৃতি কার্যকর হয়।
যখন (শর্ত){
//বিবৃতি
}
"ডু-হোয়াইল" লুপে, লুপের শেষে কন্ডিশন চেক করা হয়। সুতরাং, লুপ অন্তত একবার কার্যকর হয়।
করুন{
//বিবৃতি
} সময় (শর্ত)
পুনরাবৃত্তি (“লুপের জন্য”) ব্যবহার করে 3 (3!) এর ফ্যাক্টরিয়াল খুঁজে বের করার প্রোগ্রামটি নিম্নরূপ।
int main(){
intn=3, ফ্যাক্টোরিয়াল=1;
inti;
এর জন্য(i=1; i<=n; i++){
ফ্যাক্টোরিয়াল=ফ্যাক্টোরিয়ালi;
}
printf("ফ্যাক্টোরিয়াল হল %d\n", ফ্যাক্টোরিয়াল);
রিটার্ন 0;
}
পুনরাবৃত্তি এবং পুনরাবৃত্তির মধ্যে মিল কী?
- দুটিই সমস্যা সমাধানের কৌশল।
- টাস্কটি পুনরাবৃত্তি বা পুনরাবৃত্তির মাধ্যমে সমাধান করা যেতে পারে।
পুনরাবৃত্তি এবং পুনরাবৃত্তির মধ্যে পার্থক্য কী?
পুনরাবৃত্তি বনাম পুনরাবৃত্তি |
|
রিকারশন হল একই ফাংশনের মধ্যে একটি ফাংশন কল করার একটি পদ্ধতি। | পুনরাবৃত্তি হল নির্দেশাবলীর একটি ব্লক যা প্রদত্ত শর্তটি সত্য না হওয়া পর্যন্ত পুনরাবৃত্তি হয়৷ |
স্পেস জটিলতা | |
পুনরাবৃত্ত প্রোগ্রামের স্পেস জটিলতা পুনরাবৃত্তির চেয়ে বেশি। | স্পেস জটিলতা পুনরাবৃত্তিতে কম। |
গতি | |
রিকারশন এক্সিকিউশন ধীর। | সাধারণত, পুনরাবৃত্তি পুনরাবৃত্তির চেয়ে দ্রুত হয়। |
শর্ত | |
যদি কোন অবসানের শর্ত না থাকে, তাহলে একটি অসীম পুনরাবৃত্তি হতে পারে। | যদি শর্তটি কখনও মিথ্যা না হয় তবে এটি একটি অসীম পুনরাবৃত্তি হবে। |
স্ট্যাক | |
পুনরাবৃত্তিতে, স্ট্যাকটি স্থানীয় ভেরিয়েবল সংরক্ষণ করতে ব্যবহৃত হয় যখন ফাংশনটি কল করা হয়। | একটি পুনরাবৃত্তিতে, স্ট্যাকটি ব্যবহার করা হয় না। |
কোড পঠনযোগ্যতা | |
একটি পুনরাবৃত্ত প্রোগ্রাম আরও পাঠযোগ্য৷ | পুনরাবৃত্ত প্রোগ্রামটি পুনরাবৃত্ত প্রোগ্রামের চেয়ে পড়া কঠিন৷ |
সারাংশ – পুনরাবৃত্তি বনাম পুনরাবৃত্তি
এই নিবন্ধটি পুনরাবৃত্তি এবং পুনরাবৃত্তির মধ্যে পার্থক্য নিয়ে আলোচনা করেছে।উভয় প্রোগ্রামিং সমস্যা সমাধান করতে ব্যবহার করা যেতে পারে. পুনরাবৃত্তি এবং পুনরাবৃত্তির মধ্যে পার্থক্য হল যে পুনরাবৃত্তি হল একই ফাংশনের মধ্যে একটি ফাংশনকে কল করার একটি পদ্ধতি এবং প্রদত্ত শর্তটি সত্য না হওয়া পর্যন্ত বারবার নির্দেশের একটি সেট চালানোর জন্য এটি পুনরাবৃত্তি করে। যদি একটি সমস্যা পুনরাবৃত্ত আকারে সমাধান করা যায়, তবে এটি পুনরাবৃত্তি ব্যবহার করেও সমাধান করা যেতে পারে।
রিকারশন বনাম পুনরাবৃত্তির পিডিএফ সংস্করণ ডাউনলোড করুন
আপনি এই নিবন্ধটির PDF সংস্করণ ডাউনলোড করতে পারেন এবং উদ্ধৃতি নোট অনুসারে অফলাইন উদ্দেশ্যে এটি ব্যবহার করতে পারেন। অনুগ্রহ করে এখানে পিডিএফ সংস্করণ ডাউনলোড করুন পুনরাবৃত্তি এবং পুনরাবৃত্তির মধ্যে পার্থক্য