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

C++-এ অ্যারে থেকে ভিন্ন ফ্রিকোয়েন্সি והנալো এলিমেন্ট খুঁজে বের করা


সমস্যা

অ্যারেতে সব এলিমেন্ট m বার করে আছে, ছাড়া একটি। সেটি খুঁজে বের করুন।

বিট ম্যানিপুলেশন সমাধান

  • প্রতিটি বিট পজিশন (০ থেকে ৩১) এর জন্য সেট বিটের সংখ্যা গুনুন।
  • যে বিটের কাউন্ট m-দিয়ে ভাগশেষ নন-জিরো, সেটি রেজাল্টের সেই বিটে ১ হবে।

অ্যালগরিদম

  1. INT_SIZE = 32 (ইন্টের বিট সংখ্যা)।
  2. count[32] = {0}।
  3. প্রতিটি বিট i এবং প্রতিটি এলিমেন্ট arr[j] এর জন্য:
    • যদি (arr[j] & (1< তবে count[i]++।
  4. res = 0। প্রতিটি i এর জন্য: res += (count[i] % m) * (1<।

C++ কোড

#include <bits/stdc++.h>
using namespace std;

int selectUnique(unsigned int arr[], int size, int m) {
    int INT_SIZE = 8 * sizeof(unsigned int); // 32
    int count[INT_SIZE] = {0};
    for (int i=0; i

আউটপুট

5
  1. সীমিত পরিসরের অ্যারেতে প্রতিটি উপাদানের ফ্রিকোয়েন্সি O(n) এর চেয়ে কম সময়ে খুঁজে বের করা C++-তে

  2. সি++ প্রোগ্রাম: অ্যারেতে সর্বনিম্ন মানের ফ্রিকোয়েন্সি (Frequency) নির্ণয়

  3. C++ ব্যবহার করে অ্যারেতে একটি সংখ্যার ফ্রিকোয়েন্সি বের করা

  4. C++ প্রোগ্রাম: অ্যারে পার্টিশনিং মেথড দিয়ে kth সবচেয়ে ছোট এলিমেন্ট বের করা