বাইনারি সিকোয়েন্সের জন্য ইনপুট হিসাবে আমাদেরকে বেশ কয়েকটি বিট 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,11101>
এই ক্রমগুলির মধ্যে প্রথম 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