View Full Version : محاسبه مجموع فاکتوریل تشکیل دهنده یک عدد
zoghal
شنبه 19 خرداد 1386, 16:06 عصر
با سلام
سوالی داشتم. که هر جور فکر کردم جواب درستی براش پیدا نکردم و نیار به یک راه حل درست دارم
اما سوال میخواهم محاسبه کنم که عدید 31 از مجموعه چند فاکتوریل به دست اومده
به این مثال توجه کنید
31= 1*1! + 0*2! + 1*3! + 1*4!
کد نتیجه محاسبه میشه
31= 1+6+24
لطفا من را اهنمایی نماید.ممنون
BOB
یک شنبه 20 خرداد 1386, 14:02 عصر
سلام
1. اگر به ترتیب از هر کدام از فاکتوریلها حداکثر 1 مورد میتوان داشت، برخی اعداد به این روش قابل ساخت نیستند. مثلا عدد 10 به هیچ شکل بدست نمی آید 1+2+6=9
اگر این مسئله اهمیتی نداشته باشه، مثل الگوریتمهای معمول تبدیل مبنا کار کرده و عدد را با استفاده از جمع دنباله پاسخهای فاکتوریلها بساز.
البته گاهی لازم میشه که به عقب برگشته و بعضی فاکتوریلها را نادیده بگیری (fact * 0) که در این مورد استفاده از BackTracking پیشنهاد میشود.
2. اگر ترتیب و تعداد مهم نباشد این یک مسئله بهینه سازی (مشابه کوله پشتی) میباشد.
zoghal
دوشنبه 21 خرداد 1386, 09:28 صبح
با سلام
ترتیب اصلا مهم نیست
می شه یه روش رو بهم بگید
reza.palang
سه شنبه 22 خرداد 1386, 20:45 عصر
با این مسئله توی سایت aachp.ir برخورد کردم. خیلی جالب بود.
سوال، راه حل و سورس کد رو میذارم
zoghal
سه شنبه 22 خرداد 1386, 20:46 عصر
اوه مرسی
خیلی لطف کردید داشت رو مخم یواش یواش بریک میزدا
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.