To solve a problem using recursion we should use a:
A
Linked list
B
Stack
C
Queue
D
Array
উত্তরের বিবরণ
Recursion হলো এমন একটি প্রোগ্রামিং কৌশল যেখানে একটি ফাংশন নিজেকে নিজেই কল করে। প্রতিটি কলের সময় প্রোগ্রামকে সেই কল সম্পর্কিত তথ্য—যেমন লোকাল ভেরিয়েবল, রিটার্ন অ্যাড্রেস, ও প্যারামিটার—সংরক্ষণ করতে হয় যাতে ফাংশন সম্পূর্ণ হলে ঠিক জায়গায় ফিরে আসতে পারে।
মূল তথ্যসমূহ:
-
Stack ব্যবহারের কারণ: এই তথ্যগুলো সংরক্ষণের জন্য ব্যবহৃত হয় একটি Call Stack, যা একটি LIFO (Last In, First Out) কাঠামো অনুসরণ করে।
-
কাজের প্রক্রিয়া:
-
Function Call: প্রতিটি কলের সময় একটি stack frame তৈরি হয়ে stack-এর উপরে push হয়।
-
Recursive Calls: প্রতিটি নতুন recursive কলের জন্য নতুন ফ্রেম push হয়।
-
Return: যখন ফাংশন শেষ হয়, তখন সংশ্লিষ্ট ফ্রেমটি stack থেকে pop হয়ে প্রোগ্রাম পূর্বাবস্থায় ফিরে আসে।
-
-
এই প্রক্রিয়াই recursion-কে সঠিকভাবে কার্যকর ও ট্র্যাকযোগ্য করে তোলে।
ভুল বিকল্পসমূহ:
-
ক) Linked List: ডেটা সংরক্ষণে ব্যবহৃত হয়, কিন্তু recursion-এর স্বাভাবিক কাঠামো নয়।
-
গ) Queue: এটি FIFO (First In, First Out) ক্রমে কাজ করে, যেখানে recursion-এর জন্য LIFO প্রয়োজন।
-
ঘ) Array: ডেটা সংরক্ষণে পারে, কিন্তু এটি ডাইনামিক ফাংশন কল স্ট্রাকচার পরিচালনা করতে সক্ষম নয়।
অতএব, recursion পরিচালনায় stack ব্যবহৃত হয়, যা প্রতিটি ফাংশন কলের ট্র্যাক রাখে এবং সঠিক ক্রমে এক্সিকিউশন নিশ্চিত করে।

0
Updated: 2 days ago
_____ method is a first order optimization method.
Created: 4 days ago
A
Newton
B
Quasi-Newton
C
Gradient descent
D
Conjugate gradient
Answer: গ)
Gradient Descent 0
Updated: 4 days ago
Explanation:
First-order optimization methods are numerical techniques used to
find the minimum or maximum of a function. These methods rely on only the first-order
derivatives (gradients) of the function to guide the search
for the optimal solution.
Common First-Order Methods:
1. Gradient Descent: This is the most basic first-order method. It
iteratively updates the solution by moving in the direction
of the negative gradient. The step size, or
learning rate, determines how far to move in each iteration.
2. Forward-Backward Splitting
3. Douglas-Rachford Splitting
4. Alternating Direction Method of Multipliers (ADMM)
5. Primal-Dual Algorithms
Which data structure allows insertion at one end and deletion at the other end?
Created: 2 days ago
A
Stack
B
Tree
C
Queue
D
Graph
Queue হলো একটি FIFO (First In, First Out) ভিত্তিক ডেটা স্ট্রাকচার, যেখানে প্রথমে প্রবেশ করা উপাদানটি সবার আগে বের হয়। এটি এমনভাবে কাজ করে যাতে এক প্রান্তে ইনসার্ট (rear বা enqueue) এবং অন্য প্রান্ত থেকে ডিলিট (front বা dequeue) করা হয়।
মূল তথ্যসমূহ:
-
Insertion (Enqueue): নতুন উপাদান সবসময় queue-এর পেছনের প্রান্তে (rear) যোগ হয়।
-
Deletion (Dequeue): উপাদান মুছে ফেলা হয় queue-এর সামনের প্রান্ত (front) থেকে।
-
ব্যবহার: Queue ব্যবহৃত হয় job scheduling, printer buffer, CPU task management, এবং network packet handling-এর মতো ক্ষেত্রে।
ভুল বিকল্পসমূহ:
-
ক) Stack: এটি LIFO (Last In, First Out), অর্থাৎ ইনসার্ট ও ডিলিট একই প্রান্তে ঘটে।
-
খ) Tree: এটি একটি hierarchical structure, যেখানে parent-child সম্পর্ক থাকে, FIFO নয়।
-
ঘ) Graph: এটি নোডগুলোর মধ্যে সম্পর্ক প্রদর্শন করে, কিন্তু কোনো নির্দিষ্ট লিনিয়ার ইনসার্ট/ডিলিট কাঠামো অনুসরণ করে না।
অতএব, যেখানে এক প্রান্তে ইনসার্ট এবং অন্য প্রান্তে ডিলিট হয়, সেটি হলো Queue — সঠিক উত্তর গ) Queue।

0
Updated: 2 days ago
Consider 3 processes (P1, P2, P3) and 2 resources (R1, R2). If P1 holds R1 & requests R2, P2 holds R2 & requests R1, what is the minimum number of additional resource units of R1 or R2 needed to the deadlock assuming no preemption?
Created: 2 days ago
A
0 unit
B
1 unit of R1 or 1 unit of R2
C
2 units (1 of R1 & 1 of R2)
D
Not enough information
এই পরিস্থিতিটি একটি classical deadlock উদাহরণ, যেখানে দুইটি প্রক্রিয়া পরস্পরের অধীনে থাকা রিসোর্সের জন্য অপেক্ষা করতে থাকে, ফলে উভয়ই স্থবির হয়ে যায়।
মূল তথ্যসমূহ:
-
প্রদত্ত অবস্থা:
-
দুটি রিসোর্স: R1 এবং R2
-
দুটি প্রক্রিয়া: P1 এবং P2
-
বর্তমান বরাদ্দ:
-
P1 → R1 ধরে রেখেছে এবং R2 চাচ্ছে।
-
P2 → R2 ধরে রেখেছে এবং R1 চাচ্ছে।
-
-
-
এর ফলে তৈরি হয় Deadlock Condition, কারণ
-
প্রত্যেক প্রক্রিয়া একটি রিসোর্স ধরে রেখেছে,
-
এবং অপর রিসোর্সের জন্য অপেক্ষা করছে,
-
ফলে কেউই কাজ শেষ করতে পারছে না।
-
Deadlock ভাঙার উপায়:
-
একটি অতিরিক্ত ইউনিট যোগ করতে হবে, যাতে অন্তত একটি প্রক্রিয়া তার কাজ সম্পূর্ণ করতে পারে।
Case 1: যদি R1-এর ১টি অতিরিক্ত ইউনিট যোগ করা হয় →
-
এখন মোট ২টি R1 আছে।
-
P2, যা R1-এর জন্য অপেক্ষা করছিল, সেটি নতুন R1 পাবে,
-
কাজ শেষ করে R2 মুক্ত করবে,
-
ফলে পরে P1 R2 পেয়ে কাজ শেষ করতে পারবে।
Case 2: যদি R2-এর ১টি অতিরিক্ত ইউনিট যোগ করা হয় →
-
P1 নতুন R2 পাবে,
-
কাজ সম্পন্ন করে R1 মুক্ত করবে,
-
এরপর P2 R1 পেয়ে কাজ শেষ করবে।
অতএব, Deadlock ভাঙার জন্য R1 বা R2-এর মধ্যে যেকোনো একটি রিসোর্সের ১টি অতিরিক্ত ইউনিট যোগ করলেই সমস্যা সমাধান হয়। সঠিক উত্তর হলো খ) 1 unit of R1 or 1 unit of R2।

0
Updated: 2 days ago