কম্পিউটার

C++ এ প্রথম এবং দ্বিতীয়ার্ধ বিটের একই যোগফল সহ সমান দৈর্ঘ্যের বাইনারি ক্রম গণনা করুন


বাইনারি সিকোয়েন্সের জন্য ইনপুট হিসাবে আমাদেরকে বেশ কয়েকটি বিট n দেওয়া হয়েছে। এখানে লক্ষ্য হল দৈর্ঘ্য 2n এর বাইনারি ক্রম খুঁজে বের করা যাতে এর প্রথম এবং দ্বিতীয়ার্ধ বিটের যোগফল সমান হয়। প্রথম n বিট এবং পরের n বিটের সমষ্টি একই।

আমাদের একটি বাইনারি সিকোয়েন্স আছে তাই যেকোনো স্থানে সংখ্যা বসানোর একমাত্র পছন্দ হল 0 এবং 1। প্রথম এবং দ্বিতীয়ার্ধে n বিটের জন্য, না। সম্ভাব্য সমন্বয় হল −

n বিট সব শূন্য সহ (0 1’s) nC0=1

1 1 এর nC1

সহ n বিট

2 1 এর nC2

সহ n বিট

.

.

n 1 এর nCn

সহ n বিট

2n বিটের জন্য

  • প্রথমার্ধে 0 1 এর সাথে এবং দ্বিতীয়ার্ধটি 0 1 এর nC0 X nC0 সহ

  • 1 1 এর সাথে প্রথমার্ধ এবং 1 1 এর nC1 X nC1 সহ দ্বিতীয়ার্ধ

  • প্রথমার্ধ 2 1 এর সাথে এবং দ্বিতীয়ার্ধ 2 1 এর nC2 X nC2 সহ

  • ..............

  • প্রথমার্ধ n 1 এর সাথে এবং দ্বিতীয়ার্ধ n 1 এর nCn X nCn দিয়ে

মোট এই ধরনের সংমিশ্রণ=nC0*nC0 + nC1*nC1+.........nCn*nCn

=(nC0)2+(nC1)2+...........(nCn)2

ইনপুট

n=1

আউটপুট

Sequences with same sum of first and second half bits: 2

ব্যাখ্যা − সম্ভাব্য 2*1=2 বিট সিকোয়েন্স 00,01,10,11 এই চারটির মধ্যে 01 এবং 10 এর যোগফল=1 আছে

ইনপুট

n=2

আউটপুট

Sequences with same sum of first and second half bits: 6

ব্যাখ্যা − সম্ভাব্য 2*2 =4-বিট সিকোয়েন্স 0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1110,1110

এই ক্রমগুলির মধ্যে প্রথম 2 এবং শেষ 2 বিটের যোগফল একই −

0000,0101,0110,1001,1010,1111, মোট=6

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • পূর্ণসংখ্যা 'বিটস' নম্বর সংরক্ষণ করে।

  • ফাংশন findSeq(int n) ইনপুট হিসাবে n নেয় এবং উপরের প্রথম এবং দ্বিতীয়ার্ধের 2n বিট সমান সমষ্টি সহ ক্রম গণনা প্রদান করে।

  • ভেরিয়েবল nCi প্রাথমিক মান =1 সংরক্ষণ করতে ব্যবহৃত হয় কারণ nC0 হল 1।

  • Ans=0 শুরু করুন, যা nCi*nCi এর সমষ্টি হিসাবে এই ধরনের ক্রমগুলিকে গণনা করবে।

  • i=0 থেকে শুরু করে n পর্যন্ত উত্তরগুলিতে nCi*nCi যোগ করুন, উপরের সূত্র হিসাবে প্রতিটি nCi গণনা করুন।

  • ফর লুপ শেষ হওয়ার পরে গণনা হিসাবে 'উত্তর'-এ উপস্থিত ফলাফলটি ফেরত দিন।

উদাহরণ

#include<iostream>
using namespace std;
// Returns the count of even length sequences
int findSeq(int n){
   int nCi=1; //nC0=1
   int ans = 1;
   for (int i = 1; i<=n ; i++){
      //nCi=(nCi-1)*(nCi/nCi-1)
      // nCi/nC(i-1) = (n+1-i)/i;
      nCi = (nCi * (n+1-i))/i;
      ans += nCi*nCi;
   }
   return ans;
}
int main(){
   int bits = 2;
   cout << "Count of binary sequences such that sum of first and second half bits is
   same: "<<findSeq(bits);
   return 0;
}

আউটপুট

Count of binary sequences such that sum of first and second half bits is same: 6

  1. একটি বাইনারি ট্রিতে অর্ধেক নোড গণনা করুন (পুনরাবৃত্ত এবং পুনরাবৃত্তিমূলক) C++ এ

  2. C++ এ একই সংখ্যক সেট বিটের সাথে সংখ্যা যোগ করে সর্বোচ্চ যোগফল

  3. C++ প্রোগ্রাম যোগফল এবং গুণফল উভয়ই N এর মতো একই সহ দুটি সংখ্যা খুঁজে বের করতে

  4. C++ এ উভয় পাশে জোড় বা বিজোড় সংখ্যার একই গণনা সহ অ্যারে সূচক