এই অনুচ্ছেদে আমরা দেখব কীভাবে ব্যাকট্র্যাকিং পদ্ধতিতে n-বিট গ্রে কোড জেনারেট করা যায়। n-বিট গ্রে কোড মূলত ০ থেকে 2ⁿ − 1 পর্যন্ত বিট প্যাটার্ন যাতে-successive প্যাটার্নগুলো এক বিটের পার্থক্যে থাকে। তাই n = 2 হলে, গ্রে কোডগুলো হলো (০০, ০১, ১১, ১০) এবং ডেসিমেল সমতুল্য হলো (০, ১, ৩, ২)। প্রোগ্রামটি গ্রে কোড ভ্যালুগুলোর ডেসিমেল সমতুল্য জেনারেট করবে।
অ্যালগরিদম
generateGray(arr, n, num)
begin if n = 0, then insert num into arr return end if generateGray(arr, n-1, num) num := num XOR (1 bit left shift of n-1) generateGray(arr, n-1, num) end
উদাহরণ
#include#include using namespace std; void generateGray(vector &arr, int n, int &num){ if(n==0){ arr.push_back(num); return; } generateGray(arr, n-1, num); num = num ^ (1 << (n-1)); generateGray(arr, n-1, num); } vector gray(int n){ vector arr; int num = 0; generateGray(arr, n, num); return arr; } main() { int n; cout << "Enter number of bits: "; cin >> n; vector grayCode = gray(n); for(int i = 0; i আউটপুট
Enter number of bits: 3 0 1 3 2 6 7 5 4