কম্পিউটার

C++ এ একবারে 2 বা 3 ধাপ সহ একটি বিন্দুতে পৌঁছানোর সম্ভাবনা


একজন ব্যক্তি "A" একটি প্রারম্ভিক অবস্থান X =0 থেকে হাঁটছে, কাজটি হল সঠিক X =সংখ্যায় পৌঁছানোর সম্ভাবনা খুঁজে বের করা, যদি সে 2 বা 3 নিতে পারে পদক্ষেপ ধাপ দৈর্ঘ্য 2 এর সম্ভাব্যতা অর্থাৎ P, ধাপ 3 এর সম্ভাব্যতা হল 1 - P।

ইনপুট

num = 5, p = 0.2

আউটপুট

0.32

ব্যাখ্যা

There can be 2 ways to reach num, i.e, 5
2+3 with probability 0.2 * 0.8 = 0.16
3+2 with probability 0.8 * 0.2 = 0.16
So, total probability will be 0.16 + 0.16 = 0.32

ইনপুট

num = 2, p = 0.1

আউটপুট

0.1

সমস্যা সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে

আমরা সমস্যা সমাধানের জন্য গতিশীল প্রোগ্রামিং পদ্ধতি ব্যবহার করব।

সমাধানে আমরা −

করব
  • একটি সম্ভাব্যতা বিন্যাস ঘোষণা করুন যার আকার num+1 এবং এর মান নির্ধারণ করুন, Set probab[0] =1, Set probab[1] =0, Set probab[2] =p, Set probab[3] =1 – p

  • i 0 থেকে num পর্যন্ত পুনরাবৃত্তি করুন, যখন এর মান বৃদ্ধি করুন

  • প্রতিটি i এর জন্য, probab[i] =(p)*probab[i - 2] + (1 - p) * probab[i - 3]

  • probab[সংখ্যা]

    ফেরত দিন
  • প্রিন্ট ফলাফল।

অ্যালগরিদম

Start
Step 1→ declare function to calculate probability of reaching a point with 2 or 3 steps
at a time
   float probab(int num, float p)
      Declare double probab[num + 1]
         `Set probab[0] = 1
         Set probab[1] = 0
         Set probab[2] = p
         Set probab[3] = 1 – p
         Loop For int i = 4 and i <= num and ++i
            Set probab[i] = (p)*probab[i - 2] + (1 - p) * probab[i - 3]
         End
         return probab[num]
Step 2→ In main()
   Declare int num = 2
   Declare float p = 0.1
   Call probab(num, p)
Stop

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
//function to calculate probability of reaching a point with 2 or 3 steps at a time
float probab(int num, float p){
   double probab[num + 1];
   probab[0] = 1;
   probab[1] = 0;
   probab[2] = p;
   probab[3] = 1 - p;
   for (int i = 4; i <= num; ++i)
      probab[i] = (p)*probab[i - 2] + (1 - p) * probab[i - 3];
   return probab[num];
}
int main(){
   int num = 2;
   float p = 0.1;
   cout<<"probability is : "<<probab(num, p);
   return 0;
}

আউটপুট

উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
probability is : 0.1

  1. C++ এ উদাহরণ সহ এক্সপ্রেশন ট্রি

  2. C++ এ 3n স্লাইস সহ পিৎজা

  3. C++ এ পয়েন্টে পৌঁছানো

  4. C++ এ চেসবোর্ডে নাইট সম্ভাবনা