تابع مولد – از صفر تا صد

سید سراج حمیدی
سید سراج حمیدی
۱۴۰۲/۰۲/۱۱
۲۲ دقیقه
۱۲۹۱۸
آموزش متنی جامع
«تابع مولد» (Generating Function) یک چندجمله‌ای است که ضرایب آن متناظر با دنباله‌ای از اعداد هستند. با توجه توانایی توابع مولد در رمزبندی اطلاعات در یک دنباله از اعداد صحیح، این توابع ابزار قدرتمندی هستند که می‌توان از آن‌ها در روابط بازگشتی استفاده کرد. روش‌هایی مانند کسرهای جزئی، ضرب چندجمله‌ای‌ها و مشتقات به حل روابط بازگشتی کمک می‌کنند.
تابع مولد – از صفر تا صد
997696

تابع مولد معمولی

یک «تابع مولد معمولی» (Ordinary Generating Function) به فرم f(x)=∑n=0∞anxnf ( x ) = \displaystyle \sum _ { n = 0 } ^ { \infty } a _ n x ^ n نوشته می‌شود که در حل مسائل مختلف کاربرد دارد.

مثال اول تابع مولد معمولی

به چند روش می‌توان اعدادی را نوشت که مجموع آن‌ها برابر با ۱۰ باشد، به طوری که دقیقاً یکی از عناصر دو مجموعه {2,3,6,7}\{ 2 , 3 , 6 , 7 \} و {3,4,5,8}\{ 3 , 4 , 5 , 8 \} را داشته باشد؟

حل: دو چندجمله‌ای x2+x3+x6+x7x ^ 2 + x ^ 3 + x ^ 6 + x ^ 7 و x3+x4+x5+x8x ^ 3 + x ^ 4 + x ^ 5 + x ^ 8 را در نظر بگیرید. در چندجمله‌ای نخست، ضریب xnx ^ n عددی است که با استفاده از یک عنصر از مجموعه اول جمع nn را می‌سازد. همین گفته برای چندجمله‌ای دوم نیز برقرار است. برای مثال، ضریب x4x ^ 4 در چندجمله‌ای دوم برابر با ۱ است و یک راه برای تشکیل مجموع ۴ با استفاده از فقط یک عنصر از مجموعه دوم وجود دارد.

اکنون ضرب چندجمله‌ای‌ها را در نظر بگیرید:

(x2+x3+x6+x7)(x3+x4+x5+x8).\large \big ( x ^ 2 + x ^ 3 + x ^ 6 + x ^ 7 \big ) \big ( x ^ 3 + x ^ 4 + x ^ 5 + x ^ 8 \big ) .

می‌خواهیم بدانیم که ضریب xnx ^ n در ضرب چندجمله‌ای‌ها چه مفهومی دارد. این ضریب تعداد راه‌هایی را نشان می‌دهد که می‌توان مجموع nn را با استفاده از دقیقاً‌ یک عنصر از هر مجموعه تشکیل داد. حاصل‌ضرب به صورت زیر است:

(x2+x3+x6+x7)(x3+x4+x5+x8)=x5+2x6+2x7+x8+x9+3x10+3x11+x12+x14+x15.\large \begin {aligned} & \big ( x ^ 2 + x ^ 3 + x ^ 6 + x ^ 7 \big ) \big ( x ^ 3 + x ^ 4 + x ^ 5 + x ^ 8 \big ) \\ & = x ^ 5 + 2 x ^ 6 + 2 x ^ 7 + x ^ 8 + x ^ 9 + 3 x ^ { 1 0 } + 3 x ^ { 1 1 } + x ^ { 1 2 } + x ^ { 1 4 } + x ^ { 1 5 } . \end {aligned}

لازم به ذکر است که ضریب xnx ^ n برای n>15n >15 برابر با 00 است، زیرا نمی‌توانیم مجموعی را بزرگ‌تر از 1515 با استفاده از یکی از مجموعه‌ها بسازیم. همین گفته برای n<5n < 5 نیز صادق است.

وقتی n=10n = 10 باشد، ضریب 33 است. این بدین معنی است که ۳ راه برای ساختن 1010 وجود دارد. اگر ضرب را به طور کامل با فرمول توزیعی گسترش دهیم، خواهیم دید که سه تا x10x ^{ 10} از ضرب x2x ^2 در x8x^8، ضرب x6x ^ 6 در x4x ^ 4 و ضرب x7x ^ 7 در x3x ^ 3 وجود دارد.

ایده معنی دادن به ضریب xnx ^ n بدون معنی دادن به xx در حقیقت ایده تابع مولد است. یک تابع مولد تعداد اشیا را با استفاده از سری‌های توانی رسمی که چند‌جمله‌ای با احتمالاً بی‌نهایت جمله (توان‌های صحیح) است، رمزگذاری می‌کند. توجه کنید که اصطلاح رسمی به این دلیل استفاده می‌شود که یک مفهوم جبری است، نه یک مفهوم تحلیلی.

در مثال بالا، ما می‌توانستیم به سادگی تعداد روش‌های تشکیل 1010 را با بررسی محاسبه کنیم. با این حال، اگر توابع چندجمله‌ای به شکل فشرده‌تری (مانند استفاده از مجموع سری هندسی) بیان شود، توابع مولد بسیار مفیدتر هستند و سپس ضرب ممکن است حذف و محاسبه آسان‌تر شود.

مثال دوم تابع مولد معمولی

تابع مولد مربوط به ارزش ظاهری وجه ۱ و همچنین تابع مولد مجموع مقادیر ظاهری وجه‌ ۲ یک تاس را بیابید.

حل: برای یک تاس شش‌وجهی استاندارد، دقیقاً یک راه برای برای آمدن هر عدد از ۱ تا ۶ است. بنابراین، می‌توانیم آن را با سری توانی R1(x)=x1+x2+x3+x4+x5+x6R _ 1 ( x ) = x ^ 1 + x ^ 2 + x ^ 3 + x ^ 4 + x ^ 5 + x ^ 6 رمزگذاری کنیم. نماها عددی را که پس از انداختن تاس می‌آید نشان می‌دهند و ضرایب تعداد راه‌هایی است که مقدار می‌تواند به آن تخصیص یابد.

برای ۲ تاس، می‌توانیم به همین ترتیب مقادیر احتمالی را فهرست کرده و بنویسیم:

R2(x)=x2+2x3+3x4+4x5+5x6+6x7+5x8+4x9+3x10+2x11+x12.\large R _ 2 ( x ) = x ^ 2 + 2 x ^ 3 + 3 x ^ 4 + 4 x ^ 5 + 5 x ^ 6 + 6 x ^ 7 + 5 x ^ 8 + 4 x ^ 9 + 3 x ^ { 1 0 } + 2 x ^ { 1 1 } + x ^ { 1 2 } .

یک راه سرراست‌تر، استفاده از R2(x)=[R1(x)]2R _ 2 ( x ) = [ R _ 1 ( x ) ] ^ 2 است، بنابراین، می‌توانیم بدون شمارش هر جمله، آن را محاسبه کنیم.

مثال سوم تابع مولد معمولی

چه تعداد جواب صحیح نامنفی در معادله a+b+c=20a + b + c = 20 صدق می‌کند؟

حل: ابتدا مسئله عمومی‌تر یافتن تعداد جواب‌های صحیح نامنفی معادله a+b+c=na + b + c = n را در نظر می‌گیریم. از آنجا که مقدار aa می‌تواند هر عدد صحیح نامنفی 00، 11، 22، ⋯\cdots، ii و ... باشد، می‌توانیم آن را با یک تابع مولد نشان دهیم:

A(x)=1+x+x2+⋯+xi+⋯ .\large A ( x ) = 1 + x + x ^ 2 + \cdots + x ^ i + \cdots .

تابع مولد مشابهی برای مقادیر ممکن bb و cc داریم. بنابراین، تابع مولد برای تعداد جواب‌ها A(x)×B(x)×C(x)=[A(x)]3A ( x ) \times B ( x ) \times C ( x ) = [ A ( x ) ] ^ 3 است. با این حال، یافتن این ضرب می‌تواند بسیار خسته‌کننده باشد.

برای رفع این مسئله، A(x)A( x ) به به کسر گویای 11−x\frac { 1 } { 1 - x } تبدیل می‌کنیم که از مجموع یک تصاعد هندسی به دست آمده است. بنابراین، [A(x)]3=1(1−x)3[ A ( x ) ] ^ 3 = \frac { 1 } { ( 1 - x ) ^ 3 } را بررسی می‌کنیم. این عبارت را می‌توان با استفاده از قضیه دوجمله‌ای منفی بسط داد:

1(1−x)3=(22)+(32)x+(42)x2+⋯+(i+22)xi+⋯ .\large \frac { 1 } { ( 1 - x ) ^ 3 } = { 2 \choose 2 } + { 3 \choose 2 } x + { 4 \choose 2 } x ^ 2 + \cdots + { i + 2 \choose 2 } x ^ i + \cdots .

بنابراین، وقتی n=20n = 20 باشد، عبارت (222){ 2 2 \choose 2 } را خواهیم داشت.

حل رابطه بازگشتی همگن

در حالت کلی، یک رابطه بازگشتی برای اعداد {ci}i=1∞\{ c _ i \} _ { i = 1 } ^ { \infty } راهی برای بیان cnc _ n برحسب kk جمله قبلی دنباله، به ازای تعدادی عدد صحیح مثبت kk است. یک رابطه بازگشتی خطی همگن رابطه‌ای به فرم cn+q1cn−1+q2cn−2+⋯+qkcn−k=0c _ n + q _ 1 c _ { n - 1 } + q _ 2 c _ { n - 2 } + \cdots +q_ k c _ { n - k } = 0 است. این رابطه خطی است، زیرا هر جمله آن فقط یک تک‌جمله‌ای به فرم cic _ i است و همگن است، زیرا سمت راست آن برابر با ۰ است.

اگر سمت راست این رابطه تابعی غیرصفر از nn باشد، آنگاه معادله ناهمگن نامیده می‌شود. برای حل کامل یک رابطه بازگشتی، به مقادیر اولیه kk جمله ابتدایی نیاز داریم.

مثال رابطه بازگشتی همگن

مقدار صریح cnc _ n را بیابید، در صورتی که داشته باشیم:

$$ \large c _ n - 3 c _ { n - 2 } - 2 c _ { n - 3 } = 0 , \mbox{ } n \geq 3 $$

مطالب مجله فرادرس را در جستجوی گوگل سریع‌تر ببینید

بر اساس رای ۲۳ نفر
آیا این مطلب برای شما مفید بود؟
اگر پرسشی درباره این مطلب دارید، آن را با ما مطرح کنید.
منابع:
BrilliantAn Introduction to the Analysis of Algorithms
PDF
مطالب مرتبط
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *