কম্পিউটার

C++ এ পরপর শূন্যের জোড়া গণনা করুন


আমাদের একটি সিকোয়েন্স জেনারেটর আছে যা 1 দিয়ে শুরু হয়। প্রতিটি ধাপে 0 হয়ে যায় 10 এবং 1টি 01 হয়ে যায়। তাই পরপর ধাপে নিম্নলিখিত পরিবর্তনগুলি ঘটবে −

ধাপ 1 − 01

ধাপ 2 − 1001

ধাপ 3 − 01101001 ……

লক্ষ্য হল একটি নির্দিষ্ট সংখ্যক ধাপের জন্য পরপর 0 এর জোড়ার সংখ্যা খুঁজে বের করা।

যদি ইনপুট ধাপটি 0’s - 0 এর 1 জোড়া হয়, ইনপুট ধাপটি 0’s - 1 এর 2 জোড়া হয়, ইনপুট ধাপটি 0’s 1 এর 3 জোড়া হয়

পদক্ষেপ 4৷ − 1001011001101001

ধাপ 5 − 01101001100101101001011001101001

আমরা লক্ষ্য করতে পারি যে ক্রম 2 এর শক্তিতে বৃদ্ধি পাচ্ছে এবং দৈর্ঘ্য 12 এর পরে এবং প্রতি 12টি অক্ষরের জন্য পুনরাবৃত্তি হচ্ছে। সুতরাং, এই 12টি দৈর্ঘ্যের ক্রমগুলিতে পরপর 0 এর 2 জোড়া আছে৷

ধাপের জন্য 12 দৈর্ঘ্যের প্যাটার্নের S সংখ্যা হবে 2S /12

পরপর 2টি প্যাটার্নের সংখ্যা =1 (প্রাথমিক) + 2 X S (বাকী 12টি দৈর্ঘ্যের পুনরাবৃত্তির জন্য)

আসুন উদাহরণ দিয়ে বুঝতে পারি।

ইনপুট − ধাপ =5

আউটপুট − পরপর শূন্যের জোড়ার সংখ্যা হল −5

ব্যাখ্যা − 5ম ধাপে উপরে ক্রম দেখানো হয়েছে −

Step 5: 01101001100101101001011001101001
Number of pairs of 0’s is 5.
Also with formula : tmp=25
/12= 32/12 = 2, pairs=1+ 2 x 2 = 5

ইনপুট − ধাপ =10

আউটপুট − পরপর শূন্যের জোড়ার সংখ্যা হল − 171

ব্যাখ্যা − সূত্র সহ − tmp=210/12=1024/12 =85, জোড়া=1+ 2 x 85 =171

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

আমরা ইনপুট হিসাবে ধাপের সংখ্যা নেব এবং পরীক্ষা করব ধাপ =1 তাহলে পরপর 0 এর জোড়ার সংখ্যা 0। যদি ধাপ =2 বা 3 হয় তাহলে এই ধরনের জোড়ার সংখ্যা 1 হবে।

অন্যথায়, tmp=2input/12 এবং জোড়া=1+2*tmp সূত্র ব্যবহার করে গণনা করুন।

  • ধাপের জন্য ইনপুট হিসাবে একটি পরিবর্তনশীল দশমিক নিন।

  • ফাংশন Zero_pairs(int decimal) দশমিক নেয় এবং সেই ধাপের জন্য পরপর শূন্য জোড়ার সংখ্যা প্রদান করে।

  • 0 হিসাবে প্রাথমিক গণনা নিন।

  • দশমিক<=1 হলে, 0 ফেরত দিন।

  • যদি দশমিক==2 বা দশমিক==3। তারপর 1 ফেরত দিন।

  • অন্যথায় temp=(pow(2, decimal))/12 গণনা করুন এবং 2*temp + 1 হিসাবে গণনা করুন।

  • ফলাফল হিসাবে রিটার্ন গণনা।

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
int Zero_pairs(int decimal){
   int count = 0;
   if(decimal <=1){
      count = 0;
   }
   else if(decimal == 2 || decimal == 3){
      count = 1;
   }
   else{
      int temp = (pow(2, decimal) / 12);
      count = 2 * temp + 1;
   }
   return count;
}
int main(){
   int decimal = 7;
   cout<<"Count of Pairs Of Consecutive Zeros are: "<<Zero_pairs(decimal);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Count of Pairs Of Consecutive Zeros are: 21

  1. C++ এ বিজোড় XOR সহ জোড়া গণনা করুন

  2. C++ এ প্রদত্ত যোগফল সহ জোড়া গণনা করুন

  3. C++-এ Bitwise বা জোড় সংখ্যা হিসাবে জোড়া গণনা করুন

  4. C++ এ একটি অ্যারেতে বিভাজ্য জোড়া গণনা করুন