ধরুন 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