ধরুন n যাত্রীরা ঠিক n আসন সহ একটি বিমানে উঠছেন৷ যদি প্রথম যাত্রী টিকিট হারিয়ে ফেলে এবং এলোমেলোভাবে একটি আসন বেছে নেয়। কিন্তু এর পরে, বাকি যাত্রীরা এই অপারেশনগুলি অনুসরণ করবে -
-
টিকিটের মধ্যে লেখা তাদের নিজস্ব সিট নিন যদি এটি এখনও পাওয়া যায়,
-
অন্য আসনগুলি এলোমেলোভাবে বাছাই করুন যখন তারা তাদের আসন দখল করে দেখেন
তাহলে আমাদের খুঁজে বের করতে হবে যে n-তম ব্যক্তি নিজের আসন পেতে পারে তার সম্ভাবনা কত? তাই ইনপুট 2 হলে আউটপুট হবে 0.5। সুতরাং দ্বিতীয় ব্যক্তির দ্বিতীয় আসন পাওয়ার সম্ভাবনা 0.5 (যখন প্রথম ব্যক্তি প্রথম আসন পায়)।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
যদি n 1 হয়, তাহলে 1 দিন, অন্যথায় 0.5
উদাহরণ (C++)
আসুন আরও ভালোভাবে বোঝার জন্য নিচের বাস্তবায়ন দেখি −
class Solution {
public:
double nthPersonGetsNthSeat(int n) {
if (n == 1) return 1;
return 0.5;
}
}; ইনপুট
2
আউটপুট
0.50000