N পূর্ণসংখ্যা arr[N] এর একটি অ্যারে দেওয়া, কাজ হল arr[N]-এর গড় বের করা। ফলাফল অর্জন করতে আমরা হয় পুনরাবৃত্তিমূলক পদ্ধতি বা পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করতে পারি। আমরা প্রদত্ত সমাধানে উভয়ই দেখাব।
একটি অ্যারের গড় হবে উপাদানের সংখ্যা দ্বারা বিভক্ত অ্যারের সমস্ত উপাদানের যোগফল৷
পুনরাবৃত্ত পদ্ধতি
পুনরাবৃত্তিমূলক পদ্ধতিতে, আমরা লুপ ব্যবহার করি যেমন ফর-লুপ, while-loop বা do-while লুপ যা কন্ডিশন সত্য না হওয়া পর্যন্ত স্টেটমেন্ট চালায় যার মানে 1।
আসুন একটি উদাহরণ নেওয়া যাক এবং তারপরে আলোচনা করা যাক কিভাবে এটি পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করে প্রাপ্ত করা যায়।
ইনপুট
arr[] = {1, 2, 4, 5, 8}
আউটপুট
4
ব্যাখ্যা
sum of all the elements =1+2+4+5+8 = 20, total number of elements = 5 Average will be = 20/5 = 4
ইনপুট
arr[] = {10, 20, 30, 40}
আউটপুট
25
সমস্যার সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে (পুনরাবৃত্ত)
-
একটি লুপ ব্যবহার করে একটি অ্যারের প্রতিটি উপাদান পুনরাবৃত্তি করুন৷
-
যতক্ষণ না আমরা অ্যারের শেষ পর্যন্ত পৌঁছাই ততক্ষণ পর্যন্ত অ্যারের প্রতিটি উপাদান যোগ করুন।
-
মোট উপাদান সংখ্যা দিয়ে যোগফল ভাগ করুন এবং গড় ফেরত দিন।
অ্যালগরিদম
Start Step 1→ Declare function to calculate average using iterative method double avg(int arr[], int size) declare int sum = 0 Loop For int i=0 and i<size and i++ Set sum += arr[i] End return sum/size Step 2→ In main() Declare int arr[] = {2,3,1,6,8,10} Declare int size = sizeof(arr)/sizeof(arr[0]) Call avg(arr, size) Stop
উদাহরণ
#include <iostream> using namespace std; //calculate average using an iterative method double avg(int arr[], int size){ int sum = 0; for (int i=0; i<size; i++) sum += arr[i]; return sum/size; } int main(){ int arr[] = {2,3,1,6,8,10}; int size = sizeof(arr)/sizeof(arr[0]); cout<<"average of an array using iterative method : "&l<t;avg(arr, size) << endl; return 0; }
আউটপুট
উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেaverage of an array using iterative method : 5
পুনরাবৃত্ত পদ্ধতি
সুতরাং, একটি পুনরাবৃত্ত পদ্ধতি কি? Recursive পদ্ধতিতে আমরা একটি ফাংশনকে বারবার কল করি যতক্ষণ না আমরা পছন্দসই ফলাফল পাই। পুনরাবৃত্ত পদ্ধতিতে ফাংশন দ্বারা প্রত্যাবর্তিত মানগুলি স্ট্যাক মেমরিতে সংরক্ষণ করা হয়।
আসুন একটি উদাহরণ নেওয়া যাক এবং তারপরে আলোচনা করা যাক কিভাবে এটি পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করে প্রাপ্ত করা যায়।
ইনপুট
arr[] = {2, 4, 6, 8}
আউটপুট
5
ব্যাখ্যা
sum of all the elements =2+4+6+8 = 20, total number of elements = 4 Average will be = 20/4 = 5
ইনপুট
arr[] = {12, 23, 45, 15}
আউটপুট
19
সমস্যা সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে (পুনরাবৃত্ত
-
আমরা একটি অ্যারের শেষ না হওয়া পর্যন্ত আমরা ফাংশনটি বারবার কল করব।
-
আমরা অ্যারের প্রতিটি উপাদানের যোগফল দেব এবং যখন আমরা একটি অ্যারের শেষে পৌঁছাব, তখন আমরা অ্যারের গড় ফেরত দেব।
অ্যালগরিদম
Start Step 1→ Declare function to calculate average using recursive method double recursive(int arr[],int i, int size) IF (i == size-1) return arr[i] End IF (i == 0) return ((arr[i] + recursive(arr, i+1, size))/size) End return (arr[i] + recursive(arr, i+1, size)) Step 2→ double avg(int arr[], int size) return recursive(arr, 0 , size) Step 3→ In main() Declare int arr[] = {1,5,3,2,6,7} Declare int size = sizeof(arr)/sizeof(arr[0]) Call average(arr, size) Stop
উদাহরণ
#include <iostream> using namespace std; //function for calculating average recusively double recursive(int arr[],int i, int size){ if (i == size-1) return arr[i]; if (i == 0) return ((arr[i] + recursive(arr, i+1, size))/size); return (arr[i] + recursive(arr, i+1, size)); } //function for returning average double average(int arr[], int size){ return recursive(arr, 0 , size); } int main(){ int arr[] = {1,5,3,2,6,7}; int size = sizeof(arr)/sizeof(arr[0]); cout<<average of an array using a recursive approach is : "<<average(arr, size) << endl; return 0; }
আউটপুট
উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেaverage of an array using a recursive approach is : 4