বিবেচনা করুন আমাদের সাইজ n-এর একটি অ্যারে আছে, আমাদের কাউন্টিং সোর্ট টেকনিক ব্যবহার করে মেডিয়ান ও মোড বের করতে হবে। এই টেকনিক উপযোগী যখন অ্যারে এলিমেন্টগুলো লিমিটেড রেঞ্জে থাকে। ধরুন এলিমেন্টগুলো {1, 1, 1, 2, 7, 1}, তবে মোড ১, এবং মেডিয়ান ১.৫। মেডিয়ান এবং মোড কী তা নিচে দেওয়া হলো:
- মেডিয়ান হলো সর্টেড লিস্টের মাঝপথের সংখ্যা।
- মোড হলো সেই এলিমেন্ট যার ঘটনা সর্বাধিক।
মেডিয়ান ও মোড বের করতে নিচের ধাপগুলো অনুসরণ করতে হবে:
- ইনপুট অ্যারের সাইজ n ধরা হয়েছে।
- প্রিভিয়াস কাউন্ট সম করার আগে কাউন্ট অ্যারে নিন।
- যে ইনডেক্সে সর্বোচ্চ ভ্যালু স্টোর করা আছে, সেটিই দেয়া ডেটার মোড।
- যদি একাধিক সর্বোচ্চ উপাদান থাকে, তবে যেকোনো একটি নেওয়া যায়।
- ভ্যালুটিকে mode নামে ভেরিয়েবলে স্টোর করুন।
- নরমাল কাউন্ট সোর্ট প্রসেসিং চালিয়ে যান।
- সর্টেড অ্যারেতে, যদি n বিজোড় হয়, তবে মেডিয়ান হলো মাঝপথের উপাদান, এবং যদি n জোড় হয়, তবে মাঝপথের দুটি উপাদান নিয়ে গড় বের করুন মেডিয়ান পেতে।
- ভ্যালুটিকে median নামে ভেরিয়েবলে স্টোর করুন।
উদাহরণ
#include <iostream> using namespace std; bool isRepresentedInDDigits(int num, int d, int base) { if (d==1 && num < base) return true; if (d > 1 && num >= base) return isRepresentedInDDigits(num/base, --d, base); return false; } bool checkNumber(int num, int d) { // Check for all bases one by one for (int base=2; base<=32; base++) if (isRepresentedInDDigits(num, d, base)) return true; return false; } int main() { int num = 8; int dig = 2; if(checkNumber(num, dig)) cout << "Can be represented"; else cout << "Can not be represented"; }আউটপুট
Can be represented