একটি বেল সংখ্যা ( OEIS A000110 ) হ'ল এন লেবেলযুক্ত (স্বতন্ত্র) উপাদানগুলির একটি সেট বিভাজন করার উপায়গুলির সংখ্যা। 0 তম বেল নম্বরটি 1 হিসাবে সংজ্ঞায়িত করা হয়।
আসুন কয়েকটি উদাহরণ দেখুন (আমি পার্টিশনের জন্য সাবসেটগুলি এবং ব্রেসগুলি বোঝাতে ব্র্যাকেট ব্যবহার করি):
1: {1}
2: {[1,2]}, {[1],[2]}
3: {[1,2,3]}, {[1,2],[3]}, {[1,3],[2]}, {[2,3],[1]}, {[1],[2],[3]}
আছে অনেক উপায় বেল সংখ্যার গনা, এবং আপনি তাদের কোন স্বাধীনভাবে ব্যবহার করতে পারেন। একটি উপায় এখানে বর্ণিত হবে:
বেল সংখ্যাগুলি গণনা করার সহজতম উপায় হ'ল দ্বিপদী সহগের জন্য প্যাসকের ত্রিভুজগুলির অনুরূপ একটি সংখ্যা ত্রিভুজ ব্যবহার করা। বেল সংখ্যাগুলি ত্রিভুজটির প্রান্তে উপস্থিত হয়। 1 দিয়ে শুরু করে, ত্রিভুজের প্রতিটি নতুন সারিটি প্রথম প্রবেশের হিসাবে পূর্বের সারিতে সর্বশেষ এন্ট্রি গ্রহণ করে এবং তারপরে বাম প্রতিবেশী প্লাস উপরের বাম প্রতিবেশীর প্রতিটি নতুন এন্ট্রি সেট করে তৈরি করা হয়:
1
1 2
2 3 5
5 7 10 15
15 20 27 37 52
আপনি 0-ইনডেক্সিং বা 1-সূচক ব্যবহার করতে পারেন। আপনি যদি 0-ইনডেক্সিং ব্যবহার করেন তবে একটি ইনপুট 3
উচিত আউটপুট 5
, তবে 2
যদি আপনি 1-ইনডেক্সিং ব্যবহার করেন তবে আউটপুট করা উচিত ।
আপনার প্রোগ্রাম অবশ্যই আউটপুটিং 15 ম বেল নম্বর পর্যন্ত কাজ করা উচিত 1382958545
। তত্ত্ব অনুসারে, আপনার প্রোগ্রামটি বৃহত্তর সংখ্যা হ্যান্ডেল করতে সক্ষম হওয়া উচিত (অন্য কথায়, সমাধানগুলি হার্ডকোড করবেন না)।
সম্পাদনা: আপনার 0 এর ইনপুট (0-সূচকের জন্য) বা 1 (1-সূচকের জন্য) হ্যান্ডেল করার প্রয়োজন নেই কারণ এটি ত্রিভুজ পদ্ধতি দ্বারা গণনা করা হয়নি।
পরীক্ষার কেস (0-সূচকে ধরে নেওয়া):
0 -> 1 (OPTIONAL)
1 -> 1
2 -> 2
3 -> 5
4 -> 15
5 -> 52
6 -> 203
7 -> 877
8 -> 4140
9 -> 21147
10 -> 115975
11 -> 678570
12 -> 4213597
13 -> 27644437
14 -> 190899322
15 -> 1382958545
বিল্ট-ইন পদ্ধতি ব্যবহার করে উত্তরগুলি (যেমন ওল্ফ্রাম ভাষায় বেলবি [এন]) যা সরাসরি বেল সংখ্যা উত্পাদন করে তা আপত্তিহীন হবে।
সংক্ষিপ্ততম কোড (বাইটে) জয়ী।
3
আউটপুট করা উচিত 2
। তাহলে ইনপুটটি 1
1-ইনডেক্সিং দিয়ে কী দেবে ?
3
কি আউটপুট দেয়5
এটি আউটপুট হবে15
, তাই না? এবং 1-ইনডেক্সিংয়ের সাথে এটির ফলাফল হবে5