কম্পিউটার টিউটোরিয়াল

সি++-এ দেয়া সম্ভাবনা অনুযায়ী ৩টি সংখ্যা থেকে একটি জেনারেট করার ফাংশন


এই সমস্যায়, আমাদের একটি ফাংশন তৈরি করতে হবে যা দেয়া সম্ভাবনা অনুযায়ী তিনটি সংখ্যা জেনারেট করবে।

এজন্য, আমরা বিল্ট-ইন র‍্যান্ডম নম্বর জেনারেটর ফাংশন ব্যবহার করব যেটি rand(a, b) যা [a, b] রেঞ্জের মধ্যে সমান সম্ভাবনায় র‍্যান্ডম নম্বর জেনারেট করে।

আমাদের কাজ হল শুধু তিনটি সংখ্যা A, B, C রিটার্ন করা যাদের ঘটনার সম্ভাবনা যথাক্রমে P(A), P(B), P(C) এবং সম্ভাবনার সংজ্ঞা অনুযায়ী P(A) + P(B) + P(C) = 1।

rand(a,b) ব্যবহার করে আমাদের ফাংশন তৈরি করতে, আমরা এর বৈশিষ্ট্য ব্যবহার করব যে a থেকে b যেকোনো সংখ্যার ঘটনার সম্ভাবনা একই। কিন্তু আমাদের A কে P(A) সম্ভাবনায় এবং প্রয়োজনীয় অন্যগুলো পেতে হবে। তাই, এইজন্য আমরা সংখ্যাগুলোর শতাংশ সম্ভাবনা ব্যবহার করব অর্থাৎ যদি P(A) = 1/5 হয়, তবে আমরা এটিকে 20% হিসেবে বিবেচনা করব।

তবে, সর্বোচ্চ সম্ভাবনা শতাংশ হবে 100%, তাই আমরা 0 থেকে 100 পর্যন্ত একটি র‍্যান্ডম নম্বর জেনারেট করব এবং জেনারেট হওয়া সংখ্যা ভিত্তিক করে নিচের শর্ত অনুযায়ী A, B, C-র মধ্যে সংখ্যা রিটার্ন করব।

ক্ষেত্র ১ - যদি জেনারেট হওয়া সংখ্যা 0 এবং P(A)-র মধ্যে থাকে, A রিটার্ন করুন।

ক্ষেত্র ২ - যদি জেনারেট হওয়া সংখ্যা P(A) এবং P(A)+P(B)-র মধ্যে থাকে, B রিটার্ন করুন।

ক্ষেত্র ৩ - যদি জেনারেট হওয়া সংখ্যা P(A)+P(B) এবং 1{P(A)+P(B)+P(C)}-এর মধ্যে থাকে, C রিটার্ন করুন।

একটি উদাহরণ যা ধারণাটি স্পষ্ট করবে,

ইনপুট

A = 3 , P(A) = 35% B = 43, P(B) = 50% C = 90, P(C) = 15%

প্রোগ্রামটি রিটার্ন করবে,

3 যদি rand ফাংশন 0 এবং 35-এর মধ্যে সংখ্যা জেনারেট করে।

43 যদি rand ফাংশন 35 এবং 85-এর মধ্যে সংখ্যা জেনারেট করে।

90 যদি rand ফাংশন 85 এবং 100-এর মধ্যে সংখ্যা জেনারেট করে।

আমাদের লজিকের বাস্তবায়ন দেখানোর প্রোগ্রাম,

উদাহরণ

#include<iostream> using namespace std; int randomABC(int A, int B, int C, int PA, int PB, int PC){    int randNumber = rand()%100+1;    if (randNumber <= PA)    return A;    if (randNumber <= (PA+PB))    return B;    else    return C; } int main(){    cout<<"দেওয়া সম্ভাবনায় 3, 45, 90-এর মধ্যে র‍্যান্ডম নম্বর: "<<randomABC(3, 43, 90, 35, 40, 25);    return 0; }

আউটপুট

দেওয়া সম্ভাবনায় 3, 45, 90-এর মধ্যে র‍্যান্ডম নম্বর: 3

  1. C++ দিয়ে কমপক্ষে একটি নন-এম্পটি সাব-অ্যারের বিটওয়াইজ AND হবে এমন সংখ্যাগুলো বের করা

  2. C++-এ প্রাইম নাম্বার অ্যারে থেকে ডুপ্লিকেট মুছে ফেলা

  3. সি++-এ দিয়ে রেঞ্জে M দ্বারা বিভাজ্য সংখ্যা গণনা

  4. C++-এ ৮ সংখ্যা গ্রিডে শর্ত মেনে রাখা বসান